ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준/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) 값을 불러와서 사용한다.

    댓글

Designed by black7375.