«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Recent Posts
Tags more
Today
Total
관리 메뉴

내 인생은 개발 중

[프로그래머스] 시소 짝꿍 - Python 본문

Algorithm/프로그래머스

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

seul.e 2024. 7. 29. 19:49

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

from collections import Counter
def solution(weights):
    answer = 0
    counter = Counter(weights)

    for k, v in counter.items():
        if v >= 2:
            answer += v * (v - 1) // 2

    weights = set(weights)

    for w in weights:
        if w * 2/3 in weights:
            answer += counter[w * 2/3] * counter[w]
        if w * 2/4 in weights:
            answer += counter[w * 2/4] * counter[w]
        if w * 3/4 in weights:
            answer += counter[w * 3/4] * counter[w]

    return answer

 

처음에 collections 이용해서 조합 구해서 풀었는데 도저히 답이 안나와서 답을 참고했땨!
처음엔 마지막 for문에서 answer에 더해줄 때 그냥 1을 더하면 안되나? 생각했었는데
예를 들어 counter[w * 2/3]의 갯수가 2이고 counter[w]의 갯수가 3이라면 나올 수 있는 갯수가 2 * 3 즉 6이기 때문에 이렇게 계산해서 더해줘야 한댜!!!

 

 

 

다른 사람들은 진짜 어떻게 이렇게 푸는거지,, 대다내 증말

 

담에 한번 더 풀어봐야지!!

Comments