프로그래머스/Lv.0
등수 매기기 - Pyton, sorted
아찌방
2024. 11. 10. 12:35
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