[프로그래머스] 명예의 전당(1) (python)

Effy_ee·2023년 10월 5일
0

코딩테스트

목록 보기
67/118

(Lv.01) 명예의 전당(1)👾
https://school.programmers.co.kr/learn/courses/30/lessons/138477

def solution(k, score):
    answer=[]
    answer.append(score[0])
    
    l=[score[0] for _ in range(k)]
    
    for i in range(1,len(score)):
        if l[0]<score[i]:
            l.pop(0)
            l.append(score[i])
            print(l)
            l.sort()
            answer.append(l[0])
        else:
            answer.append(l[0])
    
    return answer

sort() 함수를 계속 호출해서 시간 복잡도 증가로 실패🥲

import heapq

def solution(k, score):
    answer = []
    l = []

    for i in range(len(score)):
        if len(l) < k:
            heapq.heappush(l, score[i])
        else:
            if l[0] < score[i]:
                heapq.heappop(l) #힙에서 가장 작은 점수를 제거
                heapq.heappush(l, score[i])
        answer.append(l[0])

    return answer

0개의 댓글