๋ฌธ์ ์์ฒด๋ ํ๋ฒํ ์ค๋ฆ์ฐจ์ ๋ฌธ์ ์ด์ง๋ง, ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ ์ ํ์ด ๊น๋ค๋ก์์ ๊ณฐ๊ณฐํ ์๊ฐํด๋ณด๊ณ ๋ฌธ์ ๋ฅผ ํ์ด๋ดค๋ค.
์์ฆ, ์ ๋ ฌ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ฉด์ StringBuilder ์ ์๋ํจ์ ๋๋ผ๊ณ ์์ด์, StringBuilder ๋ฅผ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค.
๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
StringBuilder ๋ฐฐ์ด์ ๋ง๋ค์ด์, ์ ๋ ฅ๊ฐ์ด 1~10000์ด๋ผ๊ณ ํ์ผ๋ฏ๋ก, ์ ๋ ฅ๋๋ ๊ฐ์ ์ธ๋ฑ์ค๋ก ์ง์ ํ๊ณ ๊ทธ ์ธ๋ฑ์ค ๊ฐ์ "\n" ์ ์ถ๊ฐํด์ ๋ฌธ์์ด์ append ํด์ค ํ ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ฐธ๊ณ ๋ก String str ์ ๋ฃจํ ์์์ ์ ์ธํ ๊ฒฝ์ฐ, ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ์ผ์ด๋ ์ ์์ผ๋ ์ฃผ์ํด์ผํ๋ค.
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 N = Integer.valueOf(br.readLine());
String str;
StringBuilder[] sbArray = new StringBuilder[10001];
StringBuilder result = new StringBuilder();
for (int i = 0; i < sbArray.length; i++) {
sbArray[i] = new StringBuilder();
}
for (int i = 1; i <= N; i++) {
// String str = br.readLine() str ์ด๊ธฐํ๋ฅผ ๋ฃจํ ์์์ ํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ณ์ ์ฆ๊ฐํด์ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
str = br.readLine();
sbArray[Integer.valueOf(str)].append(str + "\n");
}
for (StringBuilder sb : sbArray) {
result.append(sb);
}
System.out.println(result);
}
}
ํ์ง๋ง, ์ด ๋ฐฉ๋ฒ ์ญ์, 2432ms ๋ก ์๊ฐ์ด ๋ง์ด ๋์จ ๊ฒ ๊ฐ์ ๋ค๋ฅธ ์ฌ๋์ ๋ฐฉ๋ฒ์ ์ฐธ๊ณ ํด๋ดค๋๋
int[] ๋ฐฐ์ด์ ์นด์ดํธ๋ฅผ ํ๊ณ BufferedWriter์ repeat ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์์๋ค.
repeat ๋ฉ์๋๋ฅผ, ์์ ์ด๋ฐ ์ ์ถ๋ ฅ ๋ฌธ์ ๋ฅผ ํ ๋ ์ฌ์ฉํ์๋๋ฐ, ์ด๋ฐ ๋จ์ ๋ฌธ์ ์๋ ์ ๊ทน ์ ์ฉํด๋ด์ผ๊ฒ ๋ค..
์์ฒญ๋ ์๋ ์ฐจ์ด...!
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.valueOf(br.readLine());
int[] array = new int[10001];
for (int i = 1; i <= N; i++) {
array[Integer.valueOf(br.readLine())]++;
}
for (int i = 0; i < array.length; i++) {
bw.write((i + "\n").repeat(array[i]));
}
bw.flush();
bw.close();
}
}