https://www.acmicpc.net/problem/10814
๐ ํ์ด 2 - StringBuilder[201]
๋์ด๋ฅผ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ StringBuilder ๋ฐฐ์ด ์์ฑโญ
import java.io.*;
public class Main {
// ํ์์ ๋์ด์ ์ด๋ฆ์ด ๊ฐ์
์์๋๋ก ์ฃผ์ด์ง ๋, ๋์ด -> ๊ฐ์
์์ ์์ผ๋ก ์ ๋ ฌ ํ ์ถ๋ ฅ
public static void main(String[] args) throws IOException {
/* [1] ์
๋ ฅ */
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // ์จ๋ผ์ธ ์ ์ง ํ์์ ์(1 ≤ N ≤ 100,000)
StringBuilder[] memberList = new StringBuilder[201]; // ๋์ด๋ฅผ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ StringBuilder ๋ฐฐ์ด ์์ฑ
for (int i = 0; i < N; i++) {
String[] arr = br.readLine().split(" ");
int age = Integer.parseInt(arr[0]); // ๋์ด : 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉฐ, 200๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์
String name = arr[1]; // ์ด๋ฆ : ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ธธ์ด๊ฐ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์์ด
if (memberList[age] == null) memberList[age] = new StringBuilder();
memberList[age].append(age + " " + name + "\n");
}
/* [2] ์ถ๋ ฅ */
StringBuilder sbList = new StringBuilder();
for (StringBuilder sb : memberList) {
if (sb != null) sbList.append(sb.toString());
}
System.out.println(sbList.toString());
}
}
๐ ํ์ด 1 - String[N][2] + Arrays.sort
์ด์ฐจ์ ๋ฐฐ์ด ์์ฑ ํ ์ ๋ ฌ
import java.io.*;
import java.util.Arrays;
public class Main {
// ํ์์ ๋์ด์ ์ด๋ฆ์ด ๊ฐ์
์์๋๋ก ์ฃผ์ด์ง ๋, ๋์ด -> ๊ฐ์
์์ ์์ผ๋ก ์ ๋ ฌ ํ ์ถ๋ ฅ
public static void main(String[] args) throws IOException {
/* [1] ์
๋ ฅ */
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); // ์จ๋ผ์ธ ์ ์ง ํ์์ ์(1 ≤ N ≤ 100,000)
String[][] memberList = new String[N][2]; // ๋์ด, ์ด๋ฆ ์ ์ฅ
for (int i = 0; i < N; i++) {
String[] arr = br.readLine().split(" ");
memberList[i][0] = arr[0]; // ๋์ด : 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉฐ, 200๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์
memberList[i][1] = arr[1]; // ์ด๋ฆ : ์ํ๋ฒณ ๋์๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ธธ์ด๊ฐ 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๋ฌธ์์ด
}
/* [2] ์ ๋ ฌ(๋์ด ์ -> ๊ฐ์
ํ ์) */
Arrays.sort(memberList, (a, b) -> Integer.parseInt(a[0]) - Integer.parseInt(b[0]));
/* [3] ์ถ๋ ฅ */
StringBuilder sb = new StringBuilder();
for (String[] arr : memberList) {
sb.append(arr[0] + " " + arr[1] + "\n");
}
System.out.println(sb.toString());
}
}