코딩테스트/SWEA

[프로그래머스] 시소 짝꿍

박소민 2025. 3. 24. 17:16
시소 짝꿍
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

  • 풀이
    • 비율로 따져야 하는 문제
    • 1:1, 1:2, 2:3, 3:4 비율의 숫자가 있어야 한 쌍이 될 수 있음
    • 정렬해서 작은 값부터 넣어주면 1이하의 비율만 따져서 확인하면 됨
from collections import defaultdict

def solution(weights):
    answer = 0
    weights.sort()
    
    weights_dict = defaultdict(float)
    ratio = [1/1, 1/2, 2/3, 3/4]
    
    for w in weights:
        for r in ratio:
            answer += weights_dict[r * w]
        weights_dict[w] += 1

    return answer