๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 9375_ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ

๋ฟŒ์•ผ._. 2023. 11. 1. 10:23

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/9375)

< ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ >

 

๋ฌธ์ œ ํ’€์ด 

 

HashMap์— ์˜์ƒ ์ข…๋ฅ˜๋ฅผ key ๊ฐ’, ์˜์ƒ ์ด๋ฆ„์„ value๋กœ ์ €์žฅํ•œ๋‹ค. ๊ฐ key ๊ฐ’์— value๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์„ผ ํ›„ ์ž…์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ๊ณ ๋ คํ•˜์—ฌ +1์„ ํ•ด์ค€ ๊ฐ’์„ ๋ชจ๋‘ ๊ณฑํ•œ๋‹ค. ๋งˆ์ง€๋ง‰์— ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ์ž…์„ ๊ฒฝ์šฐ 1๊ฐ€์ง€๋ฅผ ๋นผ์ค€๋‹ค.

 

 

 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 _9375_ { // ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ

	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;

		int t = Integer.parseInt(bf.readLine());
		HashMap<String, ArrayList<String>> map = new HashMap<>();

		for (int i = 0; i < t; i++) {
			int n = Integer.parseInt(bf.readLine());
			for (int j = 0; j < n; j++) {
				st = new StringTokenizer(bf.readLine());
				String name = st.nextToken();
				String type = st.nextToken();
				if (map.containsKey(type)) {
					ArrayList<String> arr = map.get(type);
					arr.add(name);
					map.replace(type, arr);
				} else {
					ArrayList<String> arr = new ArrayList<>();
					arr.add(name);
					map.put(type, arr);
				}
			}
			int result = 1;
			for (String key : map.keySet()) {
				int size = map.get(key).size() + 1;
				result *= size;
			}
			bw.write(result - 1 + "\n");
			map.clear();
		}
		bw.flush();
	}
}

 

Main

๋ณ€์ˆ˜)
t : ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
map : HashMap <์˜์ƒ ์ข…๋ฅ˜, ArrayList <์˜์ƒ ์ด๋ฆ„>>
n : ์˜์ƒ ์ˆ˜
name, type : ์˜์ƒ ์ด๋ฆ„, ์˜์ƒ ์ข…๋ฅ˜
result : ์˜์ƒ์„ ์ž…์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
size : ๊ฐ ์˜์ƒ ์ข…๋ฅ˜์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ ์ˆ˜

 

-  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜(t) ์ž…๋ ฅ

- ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜(n) ์ž…๋ ฅ

- ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜(n)๋งŒํผ ์˜์ƒ ์ด๋ฆ„(name), ์˜์ƒ ์ข…๋ฅ˜(type) ์ž…๋ ฅ ํ›„ map์— ์ถ”๊ฐ€

- map์„ ์ˆœํ™˜ํ•˜๋ฉฐ ๊ฐ key ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” value ๊ฐ’์ด ๋ช‡ ๊ฐœ์ธ์ง€ ๊ตฌํ•œ ํ›„ +1 ํ•œ ๊ฐ’์„ ๊ณฑํ•จ

- (result -1) ์ถœ๋ ฅ