[python/백준] 25305. 커트라인(B2)

Rose·2024년 8월 9일

백준

목록 보기
5/27
post-thumbnail

📌 문제 탐색하기

👉 문제바로가기

  • N: 응시자 수, k: 상을 받는 사람의 수
  • x: 각 학생의 점수

학생의 점수를 리스트로 저장한 후 내림차순 정렬합니다. 상을 받는 사람의 수가 k명이면 리스트의 인덱스값은 k-1이므로 해당 리스트에서 k-1의 인덱스 값을 가진 요소가 커트라인이 됩니다.

가능한 시간복잡도

sort함수를 사용하면 되므로 시간복잡도는 O(NlogN)입니다. N값의 범위는 1<=N<=1000이므로 최대 약 3000개의 연산이 필요하겠네요.

알고리즘 선택

정렬이 필요하므로 sort()를 사용하였습니다. sort함수에 reverse=True로 설정하면 내림차순 정렬이 가능합니다.


📌 코드 설계하기

  1. 응시자의 수(N)와 상을 받는 사람의 수(k)에 대해 input을 받습니다.
  2. N개의 점수를 입력받아 리스트에 저장합니다.
  3. 내림차순으로 정렬합니다.
  4. 정렬된 리스트에서 k-1의 인덱스를 가지는 요소를 출력합니다.

📌 정답 코드

import sys

N, k = map(int, sys.stdin.readline().split())
score = list(map(int, sys.stdin.readline().split()))

score.sort(reverse=True)

print(score[k - 1])
profile
개발자를 꿈꾸며, 하루하루 쌓아가는 로제의 지식 아카이브입니다.

0개의 댓글