๋ฌธ์ (์ถ์ฒ: 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) ์ถ๋ ฅ
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 5545_์ต๊ณ ์ ํผ์ (0) | 2023.11.03 |
---|---|
[Baekjoon] 14241_์ฌ๋ผ์ ํฉ์น๊ธฐ (1) | 2023.11.02 |
[Baekjoon] 1817_์ง ์ฑ๊ธฐ๋ ์ (0) | 2023.10.31 |
[Baekjoon] 25496_์ฅ์ ๊ตฌ ๋ช ์ฅ ์์ค (5) | 2023.10.27 |
[Baekjoon] 5648_์ญ์์ ์ ๋ ฌ (1) | 2023.10.26 |