https://school.programmers.co.kr/learn/courses/30/lessons/120882
def solution(score):
avg = [sum(i) / 2 for i in score]
s_avg = sorted(avg, reverse = True)
answer = []
for i in avg:
answer.append(s_avg.index(i) + 1)
return answer
avg
배열에 평균을 담고, s_avg
배열에 내림차순 정렬했다.def solution(score):
rank = sorted([sum(s) / 2 for s in score], reverse = True)
rankDict = {}
for i, r in enumerate(rank):
if r not in rankDict.keys():
rankDict[r] = i + 1
return [rankDict[sum(s) / 2] for s in score]
rank
배열에 평균값 내림차순 정렬하여 담고, 딕셔너리로 해결했다.rank
배열의 인덱스와 값을 추출하여 딕셔너리에 해당 값이 없으면 해당 키 값에 1을 더하며 해당 평균 점수의 등수를 매긴다.O(n^2)
로 큰 입력에 대해 비효율적일 수 있다.O(n)
, 정렬에 O(nlogn)
으로 총 O(nlogn)
의 복잡도로 더 효율적인 코드이다.피드백은 언제나 환영입니다 :)