본문 바로가기
프로그래머스/Lv.0

등수 매기기 - Pyton, sorted

by 아찌방 2024. 11. 10.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120882?language=python3

 

프로그래머스

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

programmers.co.kr

 

 

 

풀이 - 나의 생각

평균으로 등수를 구분한다 하지만

 

어차피 평균으로 하나, 영어, 수학 두 점수의 합으로 하나

 

똑같기에 그냥 합으로 진행했다.

 

두 과목의 합을 기준으로 내림차순으로 정렬한다.

 

그리고 index로 해당하는 위치를 찾아준다.

 

index의 경우 앞에서 찾은 값을 반환해주기 때문에

 

순위가 중복으로 들어가게 된다.

 

(1, 2, 2, 4, 4 이런거)

 

 

코드

 

# [영어, 수학]
def solution(score):
    total = sorted([sum(s) for s in score], reverse = True)
    
    return [total.index(sum(s))+1 for s in score]

 

# [영어, 수학]
def solution(score):
    answer = list(range(0,len(score)))
    total = [[nums[0]+nums[1], idx] for idx, nums in enumerate(score)]
    total.sort(key = lambda x: (-x[0], x[1]))
    pre = 0
    rank = 0
    for idx, num in enumerate(total):
        if pre != num[0]:
            pre = num[0]
            rank = idx + 1
        answer[num[1]] = rank
    return answer

 

 

 

 

 

다음에 또 봐요

 

728x90