코딩테스트

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

pyflu 2023. 8. 30. 04:07

[프로그래머스] 명예의 전당 (1) Lv.1 - [파이썬/python]

 

https://school.programmers.co.kr/learn/courses/30/lessons/138477

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 

 

문제 설명

 

 

매일 출연한 가수에게 점수를 매기고 명예의 전당에 점수를 보관한다.

만약 보관되어 있는 명예의 전당 점수의 개수가 K개 보다 클 시

명예의 전당의 점수 중 가장 낮은 점수를 제거하고

하루마다 명예의 전당의 최하위 점수를 배열에 넣어 배열 전체를 반환(return)하는 문제입니다.

 

 

※ 제한사항

  • 3 ≤ k ≤ 100
  • 7 ≤ score의 길이 ≤ 1,000
    • 0 ≤ score[i] ≤ 2,000

 

 

더보기
  • 파이썬 min()함수 통해 배열의 가장 작은 값을 찾아내보기
  • 파이썬 sort()함수를 통해 배열을 정렬하여 가장 작은 값을 찾아내보기

 

 

 




정답 주의!!!




 


def solution(k, score):
   
    result = []  # 매일 발표된 명예의 전당의 최하위 점수를 저장할 리스트
    k_scores = []  # 현재 날짜까지의 k번째 점수 목록

    for i in score:
       
        k_scores.append(i)  # 현재 날짜의 점수를 k_scores에 추가
        k_scores.sort(reverse=True)  # 내림차순으로 정렬
       
        # k_scores 리스트의 길이가 k보다 크면 가장 낮은 점수 제거
        if len(k_scores) > k:
            k_scores.pop()  
       
        # 매일 명예의 전당에 추가되는 최하위 점수를 result에 추가
        result.append(k_scores[-1])

    return result

728x90