Home 백준 11004번(K번째 수)[JAVA]
Post
Cancel

백준 11004번(K번째 수)[JAVA]

k번째수

풀이

n이 5,000,000이고 시간 제한이 2초다. 즉, O(nlogn)인 정렬을 사용해야 한다. 가장 간단하게 정렬할 수 있는 Arrays.sort()(퀵 소트)를 사용하여 풀었다. (사실 귀찮아서…)

이 문제도 Scanner를 쓰면 시간 초과가 뜬다!!!!BufferedReader를 사용하도록 하자!

소스 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;
import java.io.*;

public class k번째수 {
	public static void main(String[] args) throws Exception{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		int n = Integer.parseInt(st.nextToken());
		int k = Integer.parseInt(st.nextToken());
		int[] arr = new int[n];
		st = new StringTokenizer(br.readLine());
		for (int i = 0; i < n; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}
		
		Arrays.sort(arr);
		System.out.println(arr[k-1]);
	}
}

태클 감사합니다.
조언 환영입니다.

This post is licensed under CC BY 4.0 by the author.