jyamethyst21 님의 블로그

백준 25305번- '커트라인' (PYTHON 풀이) 본문

CODING 💻

백준 25305번- '커트라인' (PYTHON 풀이)

jyamethyst21 2025. 9. 28. 21:13

문제:

 

문제는 다음과 같다. 커트라인이라는 말을 생각해보면 문제를 이해하는데에는 어려움이 없을 것이다. 사용자로부터 입력횟수와 상을 줄 인원 수를 입력받고, 점수대로 정렬 시킨 뒤에 상을 받을 인원수 중 가장 작은 값을 출력하면 된다.

 

풀이:

N, k = map(int,input().split())
li = list(map(int,input().split()))
won = []

q = sorted(li, reverse=True)
for i in q:
    if i>=q[k-1]:
        won.append(i)
print(min(won))

찾아보면 분명 더 간단하게 풀 수 있을 것 같은데 최대한 이해하기 위해 길게 풀어서 썼다.

입력받은 수를 li라는 리스트에 넣고 이를 내림차순으로 정렬한다. 그 후 정렬된 리스트를 한번씩 돌면서 처음에 입력받았던 상을 줄 인원 수-1의 값과 비교하면서 더 큰 값이면 그 값까지 점수를 받은 학생에게 상을 준다는 의미가 된다. 여기서 -1을 하는 이유는 인덱스가 0부터 시작하기 때문이다.

또한 상을 받는 학생의 점수를 전부 won이라는 리스트에 넣었기 때문에 여기서 가장 작은 값을 출력하면 커트라인에 해당하는 점수가 된다.