Study/알고리즘
[알고리즘] 커트라인 - 구현
돌문어우엉
2025. 1. 10. 01:30
문제 링크
커트라인 : https://www.acmicpc.net/problem/25305
문제탐색
기본 원리 탐색
● N명의 응시자 중 상위 k명에게 상을주며 그 커트라인을 구하는 것은,
성적이 높은순으로 정렬하여 k 번째 점수를 출력하는 것과 같습니다.
시간복잡도와 알고리즘
- 시간제한 : 1초
- 약 1억번의 연산이 가능하다고 가정합니다.
- 최대 학생수 : 1000명
- 시간복잡도가 O(n log n) 인 정렬 알고리즘은 약 3000회의 연산을 수행하므로 정렬을 사용하는데 지장이 없습니다.
=> 그러므로 python 정렬함수인 sorted를 사용하기러 합니다.
코드설계하기
- 성적을 리스트에 입력받습니다. 단, 한줄에 공백을 기준으로 입력되므로 map함수를 활용합니다.
- 리스트를 내림차순 정렬합니다.
- 리스트의 k-1번째 항목을 출력합니다.
시도회차 수정사항
정답코드
n,k=input().split()
n,k=int(n),int(k)
score = list(map(lambda x: int(x),input().split())) # 공백기준으로 잘라 리스트에 int형으로 입력
score=sorted(score,reverse=True) # 내림차순 정렬
print(score[k-1]) # 커트라인 점수 출력