[programmers/py] 시소 짝꿍

승민·2024년 3월 28일

알고리즘

목록 보기
93/171

시소 짝꿍

https://school.programmers.co.kr/learn/courses/30/lessons/152996

문제 설명

  • 시소는 중심으로부터 2(m), 3(m), 4(m) 거리의 지점에 좌석이 하나씩 있습니다.
  • 시소가 평형인 상태에서 각각에 의해 시소에 걸리는 토크의 크기가 서로 상쇄되어 완전한 균형을 이룰 수 있다면 그 두 사람을 시소 짝꿍이라고 합니다
  • weights이 주어질 때, 시소 짝꿍이 몇 쌍 존재하는지 구하여 return 하도록 solution 함수를 완성해주세요.

문제 풀이

  • 1 0.75 0.66 0.5 0.33 0.25
  • 각 무게(w)마다 위 비율을 계산 후 결과 추가
from collections import defaultdict

def solution(weights):
    answer = 0
    weights.sort()
    dic = defaultdict(int)
    
    for w in weights:
        answer += dic[w]
        answer += dic[(w*3)/2] + dic[(w*2)/3] # 2/3, 3/2
        answer += dic[(w*2)/4] + dic[(w*4)/2] # 2/4, 4/2
        answer += dic[(w*3)/4] + dic[(w*4)/3] # 4/3, 3/4
        dic[w] += 1
    return answer

0개의 댓글