Algorithm
명예의 전당 (1) / 프로그래머스
김예나
2025. 2. 17. 10:21
정답
- 프로그램 시작 초기 k일 까지는 명예의 전당에서 가장 작은 값을 ans에 추가
- k일 이후에는 명예의 전당의 가장 작은 수보다 등록되는 점수가 더 크다면 가장 작은 수를 제외하고 새 점수를 명예의 전당에 등록한 후 명예의 전당 최솟값을 ans에 추가
def solution(k, score):
best = score[:k]
m = []
ans = []
new_score = score[k:]
# 프로그램 시작 이후 초기 k일
for i in best:
m.append(i)
m.sort(reverse=True) # 내림차순 정렬
ans.append(m[-1])
# k일 이후
for i in new_score:
best.sort(reverse=True) # 내림차순 정렬 100.10,1 ...
if best[-1] < i:
best.pop()
best.append(i)
best.sort(reverse=True)
ans.append(best[-1])
else:
ans.append(best[-1])
return ans