🐣 알고리즘 삐약/💻 백준 삐약

104 삐약 : 백준 9375 | 패션왕 신혜빈 [바킹독| HASH |JAVA]

우주수첩 2024. 10. 31. 16:43
728x90

https://www.acmicpc.net/problem/9375

 

package BKD_0x15_Hash;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;

public class BOJ_9375 {
    public static void main(String[] args) throws IOException {
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
        HashMap<String,Integer> map = new HashMap<>();

        int T = Integer.parseInt(br.readLine());



        for(int i=0;i<T;i++) {
            int mulClothes = 1;

            int N = Integer.parseInt(br.readLine());
            if (N == 0) {
                System.out.println(0);
                continue;
            }

            // map 입력
            for (int j = 0; j < N; j++) {
                String[] input = br.readLine().split(" ");
                String cloth = input[1];

                if (map.containsKey(cloth)) {
                    int temp = map.get(cloth)+1;
                    map.remove(cloth);
                    map.put(cloth, temp);
                } else {
                    map.put(cloth, 1);
                }
            }


            Iterator<Integer> iterator = map.values().iterator();
            while (iterator.hasNext()){
                int clothVal = iterator.next();
                mulClothes *= clothVal+1;
            }
            System.out.println(mulClothes-1);
            map.clear();


        }


    }
}

 

의상 종류 별로 의상 수를 카운팅 하여 입력 ->Map<의상 종류 , 의상 수>

mulClothes *= clothVal+1;

의상 수 + 1(입지 않는경우) 의 값을 모두 곱

 

결과 값 : 곱한 값 -1(모두 입지 않은 경우)

 

728x90