Tags
- ์ ๋ ฌ
- Dynamic Programming
- CodingTest
- ์ํ
- LV2
- dfs
- ๋ฐฑํธ๋ํน
- Java
- DP
- ์ ์๋ก
- BFS
- ๋ฌธ์์ด
- PGM
- ๊ทธ๋ํ ํ์
- ๊น์ด ์ฐ์ ํ์
- greedy
- ๊ต์ฌ
- ์๋ฎฌ๋ ์ด์
- sort
- queue
- SpringBoot
- Brute Force Algorithm
- BOJ
- ๊ทธ๋ํ ์ด๋ก
- Study
- Python
- stack
- ์๋ฃ๊ตฌ์กฐ
- ๋๋น ์ฐ์ ํ์
- ๊ตฌํ
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_11004 : K๋ฒ์ฌ ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ๋ ฅ๋ฐ์ N๊ฐ์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์๋ K๋ฒ์ฌ ์๋ฅผ ์ถ๋ ฅํ๋ค.
- N์ด ์ต๋ 5,000,000(5๋ฐฑ๋ง)์ด๋ฏ๋ก, O(nlogn)์ ์ฝ 3์ฒ๋ง์ด ๋์จ๋ค.
- ์ผ๋ฐ์ ์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ํ๊ท ์๊ฐ ๋ณต์ก๋๊ฐ O(nlogn)์ด๋ฏ๋ก, ์ ํ์๊ฐ 2์ด์์ ๋ ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
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]);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- n๊ฐ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ฐฐ์ด arr์ ์ ์ฅํ๋ค.
- ๋ฐฐ์ด arr๋ฅผ Arrays.sort()๋ฅผ ์ฌ์ฉํด ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ค.
- ๋ฐฐ์ด arr์ k๋ฒ์งธ ์๋ฅผ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ๊ฒฐ๊ณผ์ ์ผ๋ก ์ต์ข
์ฝ๋์์ ์์ฃผ ๋จ์ํ ๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์ฌ์ฉํด๋ ํต๊ณผํ์ง๋ง,
O(n^2)์ธ ๊ฒฝ์ฐ๊ฐ ์์๊น๋ด ์นด์ดํธ ์ ๋ ฌ๋ฅผ ์จ์ผ๋๋ ์ค ์๊ณ ์ค๋ต์ด ๋์๋ค.- ์ด ๋ฌธ์ ์์ O(n^2)์ด๋ฉด, 25,000,000,000,000(25์กฐ)์ด๋ฏ๋ก ์ ํ์๊ฐ์ ํจ์ฌ ๋๊ฒ๋๋ค.
- ๋ฐ๋ผ์ ์ฐ์ฐ ํ์๋ฅผ ์ค์ด๊ธฐ ์ํด ์นด์ดํธ ์ ๋ ฌ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค.
- ํ์ง๋ง ์์ ๋ฒ์๊ฐ -10^9 ~ 10^9 ์ด๋ฏ๋ก ์๋ฐ์ ๋ฐฐ์ด ๋ฒ์๋ฅผ ๋๊ฒ๋์ ๋ถ๊ฐ๋ฅํ๋ค.
- ์์๋ณด๋ ์ด ๋ฌธ์ ๋ N๊ฐ์ ์์์ K๋ฒ์งธ ์๋ฅผ ๋ฐํํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ ํน์ ํ ์๊ณ ๋ฆฌ์ฆ์ธ
Quick Selection ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ ์๋ค๊ณ ํ๋ค. Quick sort๋ฐฉ์์ ์์ฉํ ๋ฐฉ์์ด๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1051 : ์ซ์ ์ ์ฌ๊ฐํ (0) | 2022.10.27 |
---|---|
BOJ_2003 : ์๋ค์ ํฉ 2 (0) | 2022.10.26 |
BOJ_6996 : ์ ๋๊ทธ๋จ (0) | 2022.10.24 |
BOJ_10989 : ์ ์ ๋ ฌํ๊ธฐ 3 (0) | 2022.10.23 |
BOJ_1411 : ๋น์ทํ ๋จ์ด (0) | 2022.10.20 |