Tags
- DP
- ๋๋น ์ฐ์ ํ์
- CodingTest
- dfs
- ๊ตฌํ
- ๋ฌธ์์ด
- ๋ฐฑํธ๋ํน
- ๊น์ด ์ฐ์ ํ์
- ์ ์๋ก
- ์๋ฃ๊ตฌ์กฐ
- Dynamic Programming
- ์ํ
- BOJ
- ๊ทธ๋ํ ํ์
- PGM
- stack
- greedy
- ์๋ฎฌ๋ ์ด์
- LV2
- queue
- sort
- ๊ทธ๋ํ ์ด๋ก
- Java
- Python
- SpringBoot
- ๊ต์ฌ
- Study
- BFS
- ์ ๋ ฌ
- Brute Force Algorithm
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_24060 : ์๊ณ ๋ฆฌ์ฆ ์์ - ๋ณํฉ ์ ๋ ฌ 1 ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ฃผ์ด์ง ์์ฌ ์ฝ๋๋ก ๋ณํฉ ์ ๋ ฌ์ ๊ตฌํํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Scanner;
public class Main {
static int count, num;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
num = k;
int[] a = new int[n];
int[] tmp = new int[n+1];
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
}
merge_sort(a, 0, n - 1, tmp);
if (count < k) {
System.out.println(-1);
} else {
System.out.println(num);
}
}
private static void merge_sort(int[] a, int p, int r, int[] tmp) {
if (p < r) {
int q = (p + r) / 2;
merge_sort(a, p, q, tmp);
merge_sort(a, q + 1, r, tmp);
merge(a, p, q, r, tmp);
}
}
private static void merge(int[] a, int p, int q, int r, int[] tmp) {
int i = p, j = q + 1, t = 1;
while (i <= q && j <= r) {
if (a[i] <= a[j]) {
tmp[t++] = a[i++];
} else {
tmp[t++] = a[j++];
}
}
while (i <= q) {
tmp[t++] = a[i++];
}
while (j <= r) {
tmp[t++] = a[j++];
}
i = p;
t = 1;
while (i <= r) {
a[i++] = tmp[t++];
if (++count == num) {
num = tmp[t - 1];
}
}
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- main ๋ฉ์๋๋ ์ ๋ ฅ ๊ฐ ์ ์ฅ๊ณผ ์์ฌ์ฝ๋๋ก ๊ตฌํํ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
- merge_sort ๋ฉ์๋์์ ์์ ์ธ๋ฑ์ค p, ๋ ์ธ๋ฑ์ค r์ ์ค๊ฐ ๊ฐ์ผ๋ก q๋ฅผ ๊ณ์ฐํ๋ค.
- ๋ค์ p~q, q+1~r ๊ฐ๊ฐ merge_sort๋ฅผ ๋ค์ ๋๋ฆฐ๋ค.(์ฌ๊ท)
- p๊ฐ r์ด์์ด ๋๋ฉด ์ฌ๊ท๋ฅผ ์ข ๋ฃํ๋ค.
- merge_sort 2๋ฒ ํ merge๋ฉ์๋์์ ๋ณํฉ์ ์คํํ๋ค.
- ๋ ๋ฒ์๋ฅผ arr์ ํฉ์ณ ๋ฃ์ผ๋ฉด์, ์์๊ฑธ ๋จผ์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ์ด ์ด๋ฃจ์ด ์ง๋ค.
๐ธ end ๐ธ
- ์์ฌ ์ฝ๋์ tmp ์ ์ธ์ด ๋น ์ ธ์์ด์ ๋ณํฉ ์ ๋ ฌ์ ๊ฐ๋ ์ ๋ค์ ์ฐพ์๋ณด์๋ค. (ํฌ์คํ )
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_11724 : ์ฐ๊ฒฐ ์์์ ๊ฐ์ (0) | 2023.01.23 |
---|---|
BOJ_18870 : ์ขํ ์์ถ (0) | 2023.01.23 |
BOJ_25501 : ์ฌ๊ท์ ๊ท์ฌ (0) | 2023.01.20 |
BOJ_2566 : ์ต๋๊ฐ (0) | 2023.01.19 |
BOJ_25305 : ์ปคํธ๋ผ์ธ (0) | 2023.01.18 |