https://school.programmers.co.kr/learn/courses/30/lessons/120882?language=python3
풀이 - 나의 생각
평균으로 등수를 구분한다 하지만
어차피 평균으로 하나, 영어, 수학 두 점수의 합으로 하나
똑같기에 그냥 합으로 진행했다.
두 과목의 합을 기준으로 내림차순으로 정렬한다.
그리고 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
'프로그래머스 > Lv.0' 카테고리의 다른 글
안전지대 - Python, 구현, set (0) | 2024.11.13 |
---|---|
최빈값 구하기 - Python, Counter (0) | 2024.11.11 |
7의 개수 - Python(int를 String으로 변환, count) (0) | 2024.11.01 |
2차원으로 만들기 - Python, 리스트 컴프리헨션, 2차원 (0) | 2024.10.30 |
연속된 수의 합 -Python (0) | 2024.10.29 |