[프로그래머스] 등수매기기/Python

야옹·2023년 2월 24일

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

💡 문제

💡 풀이

리스트를 평균 순으로 정렬 한 후, 딕셔너리에 값과 등수를 삽입한다.
이후 원본리스트의 값(key)으로 딕셔너리를 탐색한다.

💡 코드

def solution(score):
    d, alist = {}, [sum(num) / 2 for num in score]

    for index, avg in enumerate(sorted(alist, reverse=True), start=1):
        if avg not in d:
            d[avg] = index

    return [d[avg] for avg in alist]

💡 다른 사람의 풀이

def solution(score):
    a = sorted([sum(i) for i in score], reverse = True)
    return [a.index(sum(i))+1 for i in score]

개인적으로 감탄한 코드이다. 파이썬에 대한 이해도가 굉장히 높아보였다.
중복처리를 어떻게 하나 싶었는데, 파이썬의 index는 더 앞의 인덱스를 반환한다.
즉, 30 50(4), 40 40(4), 20 60(4) 의 경우 가장 앞 30 50의 인덱스를 출력한다.

profile
애옹

0개의 댓글