๋ฌธ์
๋ฌธ์ ๋งํฌ https://www.acmicpc.net/problem/10989
- N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์ด์ง๋ค.
- ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
- ์ฒซ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์์ด๋์ด
- ๋ฐฐ์ด์ 1๋ถํฐ 10000๊น์ง ๋ง๋ค์ด์ ์
๋ ฅ๋ฐ๋ ์์ ํด๋นํ๋ ๋ฐฐ์ด์ ๊ฐ์ + 1ํด์ค์ ๋ช๋ฒ ๋์๋์ง ๊ธฐ๋กํ๋ค.
- 2๊ฐ ์ ๋ ฅ๋๋ฉด [0, 0, 1, 0, 0 ...] ์ด๋ฐ์์ผ๋ก ๊ธฐ๋กํ๋ค.
- ๊ทธ๋ฆฌ๊ณ 1๋ถํฐ 10000๊น์ง ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ ํด๋น ๋ฐฐ์ด ๊ฐ์ด 0์ด ์๋๋ฉด ๊ทธ ๋ฐฐ์ด ๊ฐ๋งํผ ํด๋น ๋ฐฐ์ด ๋ฒ์งธ ์๋ฅผ ์ถ๋ ฅํ๋ค.
๊ฒช์ ์ํ์ฐฉ์ค
- ์๊ฐ์ด๊ณผ๊ฐ ์ ๋ง ๋ง์ด ๋ฌ๋ค.. ์ฒ์์ ๋ฐฐ์ด๋ก ํ ์๊ฐ์ ์ํ๊ณ Arrays.sort()๋ก ํ์๋๋ฐ ์๊ฐ์ด๊ณผ๊ฐ ๋๊ณ .. ๋ค์์ ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋๋ฐ ๋ฐฐ์ด์ ์ฌ์ฉํ ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ฐ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
- ๊ทธ ๋ค์์๋ 1๋ถํฐ 10000๊น์ง ๋๋ฆฌ๋ ๋ฐ๋ณต๋ฌธ์ด ๋ฌธ์ ์ธ๊ฐ ์๊ฐํด์ TreeSet์๋ค๊ฐ ์ ๋ ฅ๋๋ ์ซ์๋ค์ ์ ์ฅํด์ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ์ง ์๊ณ ์ ์ฅ๋ ์ซ์๋ก ๋ฐ๋ก ์ ๊ทผํด์ ์ ์ฅ๋ ์ซ์๋ฒ์งธ์ ๋ฐฐ์ด ๊ฐ๋งํผ ์๋ฒ์ ์ถ๋ ฅํ๋ ๋ฐฉ์์ผ๋ก ํ์ง๋ง ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค.
- ์๊ณ ๋ณด๋ TreeSet ์์ฒด๊ฐ ์์์ ์์ฒด ์ ๋ ฌ์ ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋๋ ๊ฒ์ด์๋ค.. (๊ทธ๊ฒ๋๋ฌธ์ Set ์ค์ TreeSet์ ๊ณจ๋๋๋ฐ.. ์ด๊ฒ๋๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ ์ค์ ๋ชฐ๋๋ค....ใ ใ )
- ๊ฒฐ๊ตญ ์ ๋ต์ ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด์ ์ผ์ผ์ด System.out.prinln์ ์ฐ์ง ์๊ณ StringBuilder๋ฅผ ์ฌ์ฉํ๋ ์ฑ๊ณตํ๋ค... ใ
์ฝ๋
import java.io.*;
import java.util.*;
public class BOJ10989 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
// ์ ์
๋ ฅํ ๋ฐฐ์ด
int arr[] = new int[10001];
for(int i = 0; i < N; i++) {
int n = Integer.parseInt(br.readLine());
// ์๊ฐ ์
๋ ฅ๋๋ฉด ๊ทธ ์๋ฒ์งธ ๋ฐฐ์ด์ ์นด์ดํธ + 1
arr[n] = arr[n] + 1;
}
// ๋ช๊ฐ ์ถ๋ ฅ๋์๋์ง ์นด์ดํธํ ๋ณ์
int cnt = 0;
// ์์ ๋ฒ์๊ฐ 1๋ถํฐ 10000๊น์ง๋ฏ๋ก
for(int i = 1; i < 10001; i++){
// arr์ i๋ฒ์งธ๊ฐ 0์ด ์๋๋ผ๋ฉด ์
๋ ฅ์ด ๋ ์์ด๊ธฐ ๋๋ฌธ์
if(arr[i] != 0){
// ์
๋ ฅ๋ ํ์๋งํผ
for(int j = 0; j < arr[i]; j++){
// ํด๋น ์ซ์๋ฅผ ์ ์ฅ
sb.append(i + "\n");
// ์ถ๋ ฅ ์นด์ดํธ + 1
cnt = cnt + 1;
}
}
// ๋ง์ฝ ์ถ๋ ฅ ์นด์ดํธ๊ฐ ๋ช๊ฐ ์
๋ ฅ๋์๋์ง ์๋ ค์ฃผ๋ N๊ณผ ๊ฐ๋ค๋ฉด ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
if(cnt == N){
break;
}
}
System.out.println(sb);
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] BOJ 28702 FizzBuzz (0) | 2024.07.13 |
---|---|
[Java] BOJ ์ดํญ ๊ณ์ 1 (0) | 2024.07.13 |
[Java] BOJ 2869 ๋ฌํฝ์ด๋ ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค (2) | 2024.07.12 |
[Java] BOJ 2775 ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ (0) | 2024.07.12 |
[Java] BOJ 2609 ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (2) | 2024.07.12 |