반응형
풀이
- 해당 문제는 명예의 전당에 있는 점수 중 최저점을 결과로 출력하는 것이기에
- heapq를 사용하면 좋을 것 같다는 생각을 했다.
- 그래서 li를 초기값으로 -1로 준 다음 heapq로 변경한 다음
- score 길이 만큼 반복하여 현재의 점수가 li에 있는 최소값 보다 클 경우 추가하고
- heapq에 최소값을 빼고 현재 점수를 추가하는 형식으로 했으며
- 여기서 num은 i가 k보다 작을 경우
- 초기값인 -1로 계속 들어올 것이기에 num을 넣어 해결
- 해당 문제에서 이상하게 9,11번이 런타입 에러가 발생해서
- 어떤 문제일까 고민을 했는데
- k가 score의 길이보다 큰 경우에 대해서 처음에 생각하지 못했던 것이었다.
import heapq
def solution(k, score):
result = [0]*len(score)
li = [-1]*k
num = 20000
heapq.heapify(li)
for i in range(len(score)):
if score[i] >= li[0]:
num = min(num, score[i])
heapq.heappop(li)
heapq.heappush(li,score[i])
if k > i: result[i] = num
else: result[i] = li[0]
return result
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 콜라 문제 (0) | 2024.03.14 |
---|---|
[프로그래머스, 파이썬] 땅따먹기 (0) | 2024.03.13 |
[프로그래머스, 파이썬] 추억 점수 (0) | 2024.03.13 |
[프로그래머스, 파이썬] 주식가격 (0) | 2024.03.12 |
[프로그래머스, 파이썬] 카드 뭉치 (0) | 2024.03.12 |