명예의 전당(1)

최민수·2023년 2월 27일
0

알고리즘

목록 보기
19/94
import heapq

def solution(k, score):
    answer = []
    
    # min heap으로 최솟값 유지
    heap = []
    for i in range(len(score)):
        if i < k:
            heapq.heappush(heap, score[i])
            answer.append(heap[0])
        else:
            item = score[i]
            val = heap[0]
            
            if item > val:
                heapq.heappop(heap)
                heapq.heappush(heap, item)
            answer.append(heap[0])
                
    return answer
  • 최소 힙(min heap) 자료구조를 알고 있으면 매우 쉬운 문제.
  • 만약 최소 힙을 안쓰더라도, 구현 능력으로 풀 수 있어야 하는 문제.
    • 그러나 일반적으로 이런 쉬운 구조는 코딩테스트는 나올 확률이 적기 때문에 실전에서는 시간초과가 날 수 있음.
    • 따라서 연습에서는 항상 좋은 풀이를 생각하는 습관을 기르자.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

profile
CS, 개발 공부기록 🌱

0개의 댓글