데일리루틴

TIL 0723 프로그래머스 명예의 전당(1) 파이썬

loveistheway 2024. 7. 23. 20:27

문제 :

가장 높은 점수나 가장 낮은 점수를 찾는 게 아니라 k번째에 걸치는 점수를 찾는 거여서 처음에는 리스트명[k] 와 같이 인덱스를 이용해야 하나 생각했다.

 

코드 : 

코드설명은 사진 아래에

line2: 결과를 저장할 리스트 : answer=[ ]

line3: 주어진 score의 각 요소를 담아 정렬해서 결과리스트로 보낼 리스트 : temp=[ ]

 

line5: score의 각 원소에 대해

line6: temp에 score의 원소를 차례대로 저장한다.

line7: temp를 오름차순으로 정렬한다.

 

숫자가 큰 순으로 k개까지 남겨두기 : temp가 k개를 넘겼을 때 가장 작은 수(오름차순 정렬에서 첫번째 원소)를 없앤다.

모든 원소가 들어올 때마다 '정렬하고 k개까지 남겨두기'를 한다. 오름차순 정렬된 상태에서 원소수가 k개이므로 그때의 0번째 인덱스가 answer에 들어갈 값이다.

 

line8: temp의 원소수 k개를 넘길 때

line9: 0번째 인덱스의 원소를 제거한다

line10: temp에 원소가 k개가 되었으므로 그때의 0번째 인덱스를 answer에 저장한다.

 

line13: answer 반환