def solution(emergency):
answer = []
temp = sorted(emergency,reverse=True)
for e in emergency:
for t in temp:
if(e==t):
answer.append(temp.index(t)+1)
return answer
내가 한 실수 (Miss)
answer += temp.index(t) (x)answer.append(temp.index(t) (0)한 줄 팁 (Tip):
index() 함수는 호출될 때마다 리스트를 처음부터 훑는다O(N).
index()를 쓰는 것은 이중 루프와 다름없다.def solution(emergency):
temp = sorted(emergency, reverse=True)
# 리스트 컴프리헨션으로 간결하게 작성
return [temp.index(e) + 1 for e in emergency]
temp.index(e) 를 사용하여 이중 for문 제거def solution(emergency):
# {응급도: 순위} 형태의 딕셔너리를 미리 생성
# 예: {76: 1, 24: 2, 3: 3}
rank_dict = {val: i + 1 for i, val in enumerate(sorted(emergency, reverse=True))}
# 딕셔너리에서 바로 꺼내오기
return [rank_dict[e] for e in emergency]