Tags
- ๊ทธ๋ํ ํ์
- sort
- Study
- greedy
- PGM
- Python
- DP
- Brute Force Algorithm
- ์ ์๋ก
- ๊น์ด ์ฐ์ ํ์
- queue
- SpringBoot
- Java
- ์ ๋ ฌ
- ์๋ฎฌ๋ ์ด์
- ๋ฐฑํธ๋ํน
- BFS
- LV2
- ์๋ฃ๊ตฌ์กฐ
- stack
- ๊ตฌํ
- dfs
- ์ํ
- ๊ทธ๋ํ ์ด๋ก
- BOJ
- Dynamic Programming
- CodingTest
- ๊ต์ฌ
- ๋ฌธ์์ด
- ๋๋น ์ฐ์ ํ์
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_10989 : ์ ์ ๋ ฌํ๊ธฐ 3 ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ค๋ณต ๊ฐ๋ฅํ n๊ฐ์ ์๊ฐ 10,000,000๊ฐ ์ดํ๋ก ์
๋ ฅ๋๋ฉด ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํ ์ถ๋ ฅํ๋ค.
- O(n^2) ์ผ๋, 100,000,000,000,000(๋ฐฑ ์กฐ) ์ด๋ฏ๋ก ์ ํ์๊ฐ 3์ด๋ฅผ ๋๊ธฐ๊ฒ ๋๋ค.
- ์ผ๋ฐ์ ์ธ Arrays.sort()๋ ํ๊ท O(nlogn)์ด์ง๋ง, ์ต์ ์ ๊ฒฝ์ฐ O(n^2)์ด ๋์จ๋ค.
- ์ด ๋ฌธ์ ๋ ์ ์ถ๋ ฅ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋ฉด ์์ฌ์์ฌํ๊ฒ ํต๊ณผ๋ ๊ฐ๋ฅํ๋ค.
- ์นด์ดํ
์ ๋ ฌ์ ์ฌ์ฉํด์ผํ๋ค.
- ์ ๋ ฅ๋๋ ์ซ์๋ฅผ ์ธ๋ฑ์ค๋ก, ์นด์ดํธ๋ฅผ ์งํํ๊ณ ์ถ๋ ฅํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int arr[] = new int[10001];
int n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++){
arr[Integer.parseInt(br.readLine())]++;
}
StringBuilder sb = new StringBuilder();
for (int i = 1; i < 10001; i++){
while (arr[i] > 0){
sb.append(i).append('\n');
arr[i]--;
}
}
System.out.println(sb);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์
๋ ฅ๋๋ n๊ฐ์ ์ซ์๋ค์ ๋ฒ์๊ฐ 1~10000์ด๋ฏ๋ก, ์ธ๋ฑ์ค๋ก ์ ์ฅํ๊ธฐ ์ํ ๋ฐฐ์ด arr๋ฅผ ์ ์ธํ๋ค.
- ์ ๋ ฅ๋ ์๋ฅผ ์ธ๋ฑ์ค๋ก ๋ฐฐ์ด arr์ ์นด์ดํธํ๋ค.
- ๋ฐฐ์ด arr๋ฅผ 1๋ถํฐ ๋๊น์ง ์ํํ๋ฉฐ ๊ฐ ์ธ๋ฑ์ค๊ฐ 0์ด ๋ ๋๊น์ง, ํด๋น ์ธ๋ฑ์ค๋ฅผ ์ถ๋ ฅํ๋ค.
- ์ ๋ ฅ ์๋๋ฅผ ๋์ด๊ธฐ ์ํด BufferedReader์ StringBuilder๋ฅผ ์ฌ์ฉํ๋ค.
๐ธ ๋ค๋ฅธ ํ์ด ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
int arr[] = new int[n];
for (int i = 0; i < n; i++){
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
for (int i = 0; i < n; i++){
sb.append(arr[i]).append('\n');
}
System.out.println(sb);
}
}
- ์
๋ ฅ ๋ ์๋ฅผ ๋ฐฐ์ด arr์ ์์๋๋ก ์ ์ฅํ ๋ค Arrays.sort()๋ก ์ ๋ ฌํ๋ค.
- Arrays.sort()๋ dual-pivot Quick sort ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ํ๊ท ์๊ฐ ๋ณต์ก๋๊ฐ O(nlogn)์ด์ง๋ง,
์ต์ ์ ๊ฒฝ์ฐ O(n^2)๋ก ์ข์ง ์์ ์ฑ๋ฅ์ด ๋์ค๊ธฐ๋ ํ๋ค๊ณ ํ๋ค.
- Arrays.sort()๋ dual-pivot Quick sort ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ํ๊ท ์๊ฐ ๋ณต์ก๋๊ฐ O(nlogn)์ด์ง๋ง,
๐ธ end ๐ธ
- ๋ธ๋ก ์ฆ 1 ๋ฌธ์ ์์ง๋ง, ์๊ฐ๋ณด๋ค ์ด๋ ค์ด ๋ฌธ์ ์๋ค๊ณ ์๊ฐํ๋ค.
- ์ ๋ ฌ ์๋ฆฌ์ฆ์ ๋ํ ๋ฌธ์ ์ธ๋ฐ, ์นด์ดํ
์ ๋ ฌ์ ์ ๋๋ก ์ดํดํ ์ ์์๋ ๊ฒ ๊ฐ๋ค.
- ์์ ์ python์ผ๋ก ํ๋ค๊ฐ ํฌ๊ธฐํ ๋ฌธ์ ์๋๋ฐ...๋ต์ ์ฐพ์๋ณด์ง ์์ผ๋ ค๊ณ ๊ณ ์ง ๋ถ๋ ธ๋ ๊ฒ ๊ฐ๋ค.
- ์ด ๋ฌธ์ ์์ Arrays.sort()์ ์นด์ดํ ์ ๋ ฌ์ ์ฐจ์ด๋ 2๋ฐฐ์ ๋ ๋๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_11004 : K๋ฒ์ฌ ์ (0) | 2022.10.25 |
---|---|
BOJ_6996 : ์ ๋๊ทธ๋จ (0) | 2022.10.24 |
BOJ_1411 : ๋น์ทํ ๋จ์ด (0) | 2022.10.20 |
BOJ_1049 : ๊ธฐํ์ค (0) | 2022.10.19 |
BOJ_1015 : ์์ด ์ ๋ ฌ (0) | 2022.10.19 |