https://www.acmicpc.net/problem/25305
- 예제 입력1
5 2
100 76 85 93 98
- 예제 출력1
98
- 문제 접근
- 입력
- 첫번째 줄
- 응시자수 N (1 < N < 1000)
- 상을 받는 사람 수 k (1 ≤ k ≤ N)
- 두번째 줄
- 각 학생의 점수 x (0 ≤ x ≤ 10000)
- 첫번째 줄
- 출력
- 상을 받는 커트라인 점수 출력
- 입력
- 문제 해결
- 응시자수는 최대 999명으로 시간의 복잡도가 O(n^2)인 정렬 알고리즘도 사용 가능
- 정렬 후 N - k번째 점수 출력
→ Arrays.sort는 원시타입으로 내림차순 정렬이 안되기 때문
- 기존 풀이 [메모리 : 14592KB / 시간 : 112ms]
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] input = getArray(br.readLine());
int N = input[0], k = input[1];
int[] scoreArr = getArray(br.readLine());
br.close();
Arrays.sort(scoreArr);
System.out.println(scoreArr[N - k]);
}
private static int[] getArray(String str) {
return Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();
}
'Coding Test > Step13. 정렬' 카테고리의 다른 글
[Java] 6단계. 소트인사이드 [1427번] (0) | 2024.09.10 |
---|---|
[Java] 5단계. 수 정렬하기3 [10989번] (0) | 2024.09.10 |
[Java] 4단계. 수 정렬하기2 [2751번] (0) | 2024.09.10 |
[Java] 2단계. 대표값2 [2587번] (0) | 2024.07.15 |
[Java] 1단계. 수 정렬하기 [2750번] (0) | 2024.07.15 |