K번째로 낮은 점수
문제
한 보드게임 대회에 참가자 N명이 참가해 최종 점수를 받았다. 점수는 정수로 집계되며, 벌점이 쌓인 참가자는 점수가 음수가 되기도 한다. 또한 서로 같은 점수를 받은 참가자가 여러 명 있을 수 있다.
운영진은 참가자들의 점수를 낮은 쪽부터 높은 쪽까지 늘어놓았을 때, 앞에서 K번째에 놓인 점수를 알고 싶다.
참가자 N명의 점수와 K가 주어질 때, 점수를 낮은 것부터 늘어놓았을 때 앞에서 K번째에 있는 점수를 출력하는 프로그램을 작성하여라.
예를 들어 N=5명의 점수가 다음의 표와 같고, K=2라고 해보자.
| 참가자 | 1번 | 2번 | 3번 | 4번 | 5번 |
|---|---|---|---|---|---|
| 점수 | 4 | 1 | 2 | 3 | 5 |
이때 점수를 낮은 것부터 늘어놓으면 다음과 같다.
| 순서 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| 점수 | 1 | 2 | 3 | 4 | 5 |
| 참가자 | 2번 | 3번 | 4번 | 1번 | 5번 |
앞에서 2번째에 놓인 점수는 2이므로, 이 경우 정답은 2다.
같은 점수가 여러 번 나오더라도 각각을 따로 센다. 예를 들어 N=4명의 점수가 7, 3, 7, 3이라고 해보자. 이를 낮은 것부터 늘어놓으면 3, 3, 7, 7이 된다.
| 순서 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 점수 | 3 | 3 | 7 | 7 |
이 경우 K=3이라면 앞에서 3번째에 놓인 점수는 7이다. 다시 말해 서로 다른 점수를 골라 세는 것이 아니라, 점수를 낮은 것부터 늘어놓은 N개의 값 가운데 앞에서 K번째 값을 그대로 출력한다.
K는 1부터 N까지의 값을 가진다. K=1이면 가장 낮은 점수를 출력하고, K=N이면 가장 높은 점수를 출력한다. 또한 참가자가 매우 많을 수 있으므로, 점수를 한 번에 모두 읽어 들인 다음에 한 번만 정렬하는 편이 좋다.
입출력 예시
예시 1
입력
5 2 4 1 2 3 5
출력
2
예시 2
입력
10 6 -168384455 247198315 577132058 -404633708 -179564237 -279546414 -688948127 -674478692 -965644886 486949094
출력
-179564237
예시 3
입력
5 5 5 4 3 2 1
출력
5
입력 조건
가장 먼저 첫째 줄에 참가자의 수 N과 K가 공백 하나로 구분되어 주어진다. N은 1 이상 5,000,000 이하의 자연수이며, K는 1 이상 N 이하의 자연수다.
이어서 둘째 줄에 참가자 N명의 점수가 1번 참가자부터 N번 참가자까지 차례대로 공백 하나로 구분되어 주어진다. 각 점수는 절댓값이 1,000,000,000 이하인 정수다.
출력 조건
점수를 낮은 것부터 늘어놓았을 때 앞에서 K번째에 있는 점수를 한 줄에 출력한다. 값 뒤에 공백을 따로 붙이지 않으며, 줄을 한 번 바꾸고 끝낸다.
요구사항
- 입력은 표준 입력으로 받고, 결과는 표준 출력으로 내보냅니다
- 점수를 낮은 것부터 늘어놓고 앞에서 K번째 값을 찾습니다
- 같은 점수가 여러 번 나오면 각각을 따로 셉니다
- 값 하나만 한 줄에 출력합니다
- 참가자가 매우 많으므로 입력을 한 번에 모두 읽어 들이는 편이 좋습니다
- 표준 입력으로 읽고 표준 출력으로 내보내는 프로그램을 짜야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 출력이 글자 하나까지 기대값과 같아야 합니다. 줄 안의 빈칸은 다른 글자와 똑같이 봅니다.
- 케이스는 17개이고, 그 가운데 3개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 17개를 전부 통과해야 해결입니다.
예시
공개 케이스 3개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 17개를 전부 통과해야 해결입니다.
5 2 4 1 2 3 5
2
10 6 -168384455 247198315 577132058 -404633708 -179564237 -279546414 -688948127 -674478692 -965644886 486949094
-179564237
5 5 5 4 3 2 1
5
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.