-
[백준/JAVA] 9375번 패션왕 신해빈 - HashMap, 조합ETC/Algorithm 2023. 6. 9. 09:47
풀이
옷의 종류의 개수를 센다.
HashMap 을 사용하여, 예를 들어 키:"모자" 값:2 형식으로
옷의 종류를 키값으로, 값에 같은 종류의 개수를 저장한다.안 입은 경우도 포함한다.
조합을 사용하여 계산하는데, 안입은 경우도 포함한다.
대신 알몸인 경우를 제외해야 하므로 결과값에 -1을 해준다.코드
제출 코드
import java.io.*; import java.util.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st; int T = Integer.parseInt(br.readLine()); int n; for (int i = 0; i < T; i++) { HashMap<String, Integer> hashMap = new HashMap<>(); n = Integer.parseInt(br.readLine()); int result = 1; if (n != 0) { for (int j = 0; j < n; j++) { st = new StringTokenizer(br.readLine(), " "); String name = st.nextToken(); String type = st.nextToken(); if (!hashMap.containsKey(type)) { hashMap.put(type, 1); } else { hashMap.put(type, hashMap.get(type) + 1); } } for (String s : hashMap.keySet()) { result = result * (hashMap.get(s) + 1); } } bw.write((result-1) + "\n"); } bw.flush(); } }
공부한 내용
HashMap에서 전체 값을 불러오는 법
Iterater를 통해 .KeySet() 을 사용하여 키들의 개수 만큼 반복하고,
key를 통해 .get(key) 값을 불러와서 사용한다.