1. ๋ฌธ์ (URL)
2. ๋ฌธ์ ๋ถ๋ฅ
1. ๋์ด๋ : ๐ฅ ๋ธ๋ก ์ฆ 2
2. ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ : ์ ๋ ฌ, ๊ตฌํ
3. ์๊ฐ์ ํ : 1์ด
3. ๋ฌธ์ ๋ถ์
1. 1์ด์ ์ฐ์ฐํ ์ ์๋ ๊ธฐ์ค์ 1์ต๋ฒ ์ด๋ฏ๋ก ํด๋น ๋ฌธ์ ๋ ๋ฒ๋ธ ์ ๋ ฌ, ๋ณํฉ ์ ๋ ฌ ๋ฑ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
[์๊ฐ๋ณต์ก๋]
1) ๋ฒ๋ธ ์ ๋ ฌ = (N)² --> (1,000)² : 1,000,000
2) ๋ณํฉ ์ ๋ ฌ = NlogN --> (1,000)log(1,000) : ์ฝ 10,000
2. ๋ณํฉ ์ ๋ ฌ์ ์ฐ์ตํ๊ธฐ ์ํด์ ๋ณํฉ์ ๋ ฌ๋ก ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์ต๋๋ค.
3. ๋ฌธ์ ํ์ด ์์(์์)
1) ์
๋ ฅ๋ฐ๋ ๋ถ๋ถ ๋ก์ง ๊ตฌํ
2) ๋ณํฉ ์ ๋ ฌ ์ํํ๋ ๋ฉ์๋ ๊ตฌํ
[1] ๋ถํ ์ฒ๋ฆฌ ๋ถ๋ถ ๊ตฌํ
[2] ๋ณํฉ์ฒ๋ฆฌ ๋ถ๋ถ ๊ตฌํ
4. ์ฝ๋ ๊ตฌํ
import java.util.Scanner;
public class Main {
// 2022-09-24
// ๋ฐฑ์ค์จ๋ผ์ธ ์๊ณ ๋ฆฌ์ฆ ํ์ด
// ๋ฐฑ์ค(BOJ) BRONZE2 ์ ์ ๋ ฌํ๊ธฐ
// ๋ฌธ์ URL : https://www.acmicpc.net/problem/2750
static int N; // ์์ ๊ฐ์
static int[] arr; // ์๋ฅผ ๋ด์๋๋ ๋ฐฐ์ด
static int[] temp; // ์๋ฅผ ์ ์ ๋ด์๋๋ ๋ฐฐ์ด
public static void main(String[] args) {
// INPUT DATA ์ ์
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
arr = new int[N];
temp = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
// ๋ณํฉ์ ๋ ฌ ์ํ
mergeSort(0, N-1);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
sb.append(arr[i]).append("\n");
}
System.out.println(sb.toString());
}
// ๋ณํฉ์ ๋ ฌ ์ํ ๋ฉ์๋
private static void mergeSort(int start, int end) {
// ๋ณํฉ์ ๋ ฌ ์ํ ์กฐ๊ฑด
if (start < end) {
// 1. ๋ถํ ์ฒ๋ฆฌ
int mid = (start + end) / 2;
mergeSort(start, mid);
mergeSort(mid+1, end);
// 2. ๋ณํฉ์ฒ๋ฆฌ
mergeNum(start, end, mid);
}
}
private static void mergeNum(int start, int end, int mid) {
// ์ผ์ชฝ๋ถ๋ถ ์์ ๋ณ์
int i = start;
// ์ค๋ฅธ์ชฝ๋ถ๋ถ ์์๋ณ์
int j = mid +1;
// ์์ ๋ฐฐ์ด ์์๋ณ์
int k = start;
// ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
while (i <= mid && j <= end) {
if (arr[i] > arr[j]) {
temp[k] = arr[j];
j++;
} else {
temp[k] = arr[i];
i++;
}
k++;
}
// ๋จ์ ๊ฐ ์ผ๊ด ๋ณต์ฌ
while (i <= mid) {
temp[k] = arr[i];
i++;
k++;
}
while (j <= end) {
temp[k] = arr[j];
j++;
k++;
}
// ์ ๋ ฌํ ๊ฐ ์๋ ๋ฐฐ์ด์ ์ฎ๊ธฐ๋ ์์
for (int n = start; n <= end; n++) {
arr[n] = temp[n];
}
}
}
GITHUB ์์ค : ๋ฐ๋ก๊ฐ๊ธฐ
Reference.
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง (https://www.acmicpc.net/)
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ(๋ฐฑ์ค)_JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]Q11720(์ซ์์ ํฉ) - JAVA[์๋ฐ] (0) | 2022.11.12 |
---|