Post

🧩 Baekjoon 10814 - λ‚˜μ΄μˆœ μ •λ ¬

🧩 Baekjoon 10814 - λ‚˜μ΄μˆœ μ •λ ¬

문제

온라인 저지에 κ°€μž…ν•œ μ‚¬λžŒλ“€μ˜ λ‚˜μ΄μ™€ 이름이 κ°€μž…ν•œ μˆœμ„œλŒ€λ‘œ μ£Όμ–΄μ§„λ‹€. μ΄λ•Œ, νšŒμ›λ“€μ„ λ‚˜μ΄κ°€ μ¦κ°€ν•˜λŠ” 순으둜, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ λ¨Όμ € κ°€μž…ν•œ μ‚¬λžŒμ΄ μ•žμ— μ˜€λŠ” μˆœμ„œλ‘œ μ •λ ¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 온라인 μ €μ§€ νšŒμ›μ˜ 수 N이 μ£Όμ–΄μ§„λ‹€. (1 ≀ N ≀ 100,000) λ‘˜μ§Έ 쀄뢀터 N개의 μ€„μ—λŠ” 각 νšŒμ›μ˜ λ‚˜μ΄μ™€ 이름이 곡백으둜 κ΅¬λΆ„λ˜μ–΄ μ£Όμ–΄μ§„λ‹€. λ‚˜μ΄λŠ” 1보닀 ν¬κ±°λ‚˜ κ°™μœΌλ©°, 200보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜μ΄κ³ , 이름은 μ•ŒνŒŒλ²³ λŒ€μ†Œλ¬Έμžλ‘œ 이루어져 있고, 길이가 100보닀 μž‘κ±°λ‚˜ 같은 λ¬Έμžμ—΄μ΄λ‹€. μž…λ ₯은 κ°€μž…ν•œ μˆœμ„œλ‘œ μ£Όμ–΄μ§„λ‹€.

좜λ ₯

첫째 쀄뢀터 총 N개의 쀄에 걸쳐 온라인 μ €μ§€ νšŒμ›μ„ λ‚˜μ΄ 순, λ‚˜μ΄κ°€ κ°™μœΌλ©΄ κ°€μž…ν•œ 순으둜 ν•œ 쀄에 ν•œ λͺ…μ”© λ‚˜μ΄μ™€ 이름을 곡백으둜 ꡬ뢄해 좜λ ₯ν•œλ‹€.

예제

βœ… μž…λ ₯ 1

1
2
3
4
3
21 Junkyu
21 Dohyun
20 Sunyoung

βœ… 좜λ ₯ 1

1
2
3
20 Sunyoung
21 Junkyu
21 Dohyun

μž‘μ„± μ½”λ“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader;  
import java.util.*;  
  
public class Main {  
	public static void main(String[] args) throws IOException {  
		// 1. λ³€μˆ˜ μ„ μ–Έ 및 μ΄ˆκΈ°ν™”  
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));  
		StringBuilder sb = new StringBuilder();  
		int n = Integer.parseInt(br.readLine());  
		Map<Integer, List<String>> listMap = new TreeMap<>();  
		
		// 2. λ‚˜μ΄ 및 이름 데이터 μ €μž₯  
		for (int i = 0; i < n; i++) {  
			StringTokenizer st = new StringTokenizer(br.readLine());  
			int age = Integer.parseInt(st.nextToken());  
			String name = st.nextToken();  
			listMap.computeIfAbsent(age, k -> new ArrayList<>()).add(name);  
		}  
		
		// 3. 좜λ ₯ 객체 처리  
		for (Map.Entry<Integer, List<String>> entry : listMap.entrySet()) {  
			List<String> names = entry.getValue();  
			for (String name : names) sb.append(entry.getKey()).append(" ").append(name).append("\n");  
		}  
		
		// 4. 좜λ ₯  
		System.out.println(sb);  
	}  
}
  • λ‚˜μ΄μ— λŒ€ν•œ μ •λ ¬ 처리λ₯Ό μœ„ν•΄ TreeMap을 μ‚¬μš©ν–ˆλ‹€.
  • λ‚˜μ΄κ°€ κ°™μœΌλ©΄ κ°€μž… 순으둜 좜λ ₯ν•˜λ©΄ λ˜λ―€λ‘œ 이름에 λŒ€ν•œ μ •λ ¬ μ²˜λ¦¬λŠ” λ”°λ‘œ ν•„μš”ν•˜μ§€ μ•Šμ•˜λ‹€.
This post is licensed under CC BY 4.0 by the author.