본문 바로가기
Algorithm

[Programmers] 138477.py 명예의 전당 (1)

by roses16 2023. 6. 8.

문제 그대로 작성해서 해결

 

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

    for e in score:
        daily_score.append(e)

        if len(daily_score) > k:
            daily_score.remove(min(daily_score))
        
        answer.append(min(daily_score))
        
    return answer

 

해결 이후 정렬된 배열에서 k번째 값을 추출한 값이 정답과 같은 값이라는 생각이 들어 아래와 같은 방식으로도 해결.

 

def solution(k, score):
    answer = [score[0]]
  
    for i in range(1, len(score)):
        if i < k:
            answer.append(min(score[:i+1]))
        else:
            answer.append(sorted(score[:i+1], reverse=True)[k-1])       
    return answer

 

다만 매 반복마다 sorted 함수가 실행되기때문에 전자의 해결 방법이 더 빨랐다.