[Python#] 명예의 전당

Gi Woon Lee·2024년 9월 8일
0

Python

목록 보기
11/13

논리

  1. 갱신되는 상위 리그를 담을 변수 leage와 리그 내 최하위 점수를 담아낼 result변수를 생성한다.
  2. for문을 통해 leage에 갱신되는 점수들을 하나씩 넣어주며 내림차순으로 정렬하여 큰 값부터 앞에 오도록 한다.
  3. 점수를 하나씩 넣어주는 과정에서 k개가 넘어가는 순간 pop메서드를 사용하여 마지막 값(가장 작은 값)을 삭제해준다.
  4. leage의 최하위 값을 result 변수에 넣어준다.
    완성된 result 리스트 제출한다.

코드

def solution(k, score):
	# 상위 k개의 점수로 갱신되는 leage()변수
    # leage()최하위인 k등의 점수를 담는 변수
    leage = []
    result = []
    # 아래 과정을 i번 반복한다. 
    for i in score:
    	# 하루가 지날 때마다 leage에 새로운 점수를 넣어준다.
        leage.append(i)
        # 해당 leage의 점수를 내림차순 정렬해준다. 
        leage.sort(reverse = True)
        # 만약 리그가 k개를 넘어가면 마지막 점수를 제거하여 
        # 상위k개의 값만 leage에 속할 수 있게 조정한다. 
        if len(leage) > k:
            leage.pop()
        # 조정된 k개의 leage 중 가장 하위값을 result리스트에 추가한다. 
        result.append(min(leage))
    return result
  • 사용 메서드 pop
    list.pop(index) : 값 삭제
    디폴트는 -1, 즉 맨 뒤에 오는 값을 삭제한다.
list = [1,2,3,4,5]
print(list.pop()) # [1,2,3,4]
print(list.pop(2)) # [1,2,4,5]

0개의 댓글