๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 9491_Politics

๋ฟŒ์•ผ._. 2025. 7. 28. 12:15
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/9491)

< Politics >

 

๋ฌธ์ œ ํ’€์ด 

 

HashMap์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ํ›„๋ณด์ž๋ณ„ ์ง€์ง€์ž์˜ ์ด๋ฆ„์„ ๊ตฌํ•œ๋‹ค.

 

my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.StringTokenizer;

public class _9491_ { // Politics

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		String str = "";

		while (!(str = bf.readLine()).equals("0 0")) {
			st = new StringTokenizer(str);

			int n = Integer.parseInt(st.nextToken());
			int m = Integer.parseInt(st.nextToken());

			ArrayList<String> list = new ArrayList<>();
			HashMap<String, ArrayList<String>> map = new HashMap<>();

			for (int i = 0; i < n; i++) {
				String name = bf.readLine();

				list.add(name);
				map.put(name, new ArrayList<>());
			}

			for (int i = 0; i < m; i++) {
				st = new StringTokenizer(bf.readLine());

				String supporter = st.nextToken();
				String cadidate = st.nextToken();

				if (map.containsKey(cadidate)) {
					map.get(cadidate).add(supporter);
				} else {
					list.add(cadidate);
					map.put(cadidate, new ArrayList<>());
					map.get(cadidate).add(supporter);
				}
			}

			for (int i = 0; i < list.size(); i++) {
				for (int j = 0; j < map.get(list.get(i)).size(); j++) {
					bw.write(map.get(list.get(i)).get(j) + "\n");
				}
			}
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n, m : ํ›„๋ณด์ž์˜ ์ˆ˜, ์ง€์ง€์ž์˜ ์ˆ˜
list : ํ›„๋ณด์ž ํ‘œ๊ธฐ ์ˆœ์„œ
map : ํ›„๋ณด์ž๋ณ„ ์ง€์ง€์ž
name : ํ›„๋ณด์ž ์ด๋ฆ„
supporter, cadidate : ์ง€์ง€์ž์˜ ์ด๋ฆ„, ํ›„๋ณด์ž์˜ ์ด๋ฆ„

 

0 0์ด ์ž…๋ ฅ๋˜์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.

 

1) ํ›„๋ณด์ž์˜ ์ˆ˜, ์ง€์ง€์ž์˜ ์ˆ˜ ์ž…๋ ฅ

2) ํ›„๋ณด์ž์˜ ์ˆ˜๋งŒํผ ํ›„๋ณด์ž ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ ArrayList์™€ HashMap์— ์ถ”๊ฐ€

3) ์ง€์ง€์ž์˜ ์ˆ˜๋งŒํผ ์ง€์ง€์ž์˜ ์ด๋ฆ„๊ณผ ํ›„๋ณด์ž์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ๋ฐ›์•„ HashMap์— ํ›„๋ณด์ž๊ฐ€ key๊ฐ’์œผ๋กœ ์žˆ๋‹ค๋ฉด value์— ์ง€์ง€์ž์˜ ์ด๋ฆ„ ์ถ”๊ฐ€, key๊ฐ’์— ์—†๋‹ค๋ฉด ์ƒˆ๋กœ ์ถ”๊ฐ€

4) ArrayList์— ์žˆ๋Š” ํ›„๋ณด์ž์˜ ์ด๋ฆ„ ์ˆœ์œผ๋กœ ํ›„๋ณด์ž๋ฅผ ์ง€์ง€ํ•˜๋Š” ์ง€์ง€์ž์˜ ์ด๋ฆ„ ์ถœ๋ ฅ



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 3443_Reaux! Sham! Beaux!  (4) 2025.07.30
[Baekjoon] 9787_Olympic Games Ranking  (4) 2025.07.29
[Baekjoon] 15198_NKD  (2) 2025.07.25
[Baekjoon] 10442_Rank Order  (1) 2025.07.24
[Baekjoon] 15426_GlitchBot  (3) 2025.07.23