BOJ 9375 패션왕 신해빈

1 minute read

  1. 변수

    HashMap<String, Integer> hm = new HashMap<String, Integer>(); // HashMap
       
    
  2. 구현로직

    1. 같은 이름을 가진 의상은 존재하지 않으니까 의상의 종류에 초점을 맞추기!

    2. HashMap hm 안에는 <의상의 종류, 의상의 종류에 해당하는 의상의 개수>

      ex) headgear가 2종류, eyewear가 1종류

    (*) 여기서 중요한 것!! 선택안하는 경우도 안입는 경우도 넣어줘야돼!

    ​ 그리고 마지막에 경우의 수 구할때 아무것도 안입은 경우의 수 (-1) 처리 해주기!

  3. 코드

    package baekjoon.Silver;
       
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    import java.util.StringTokenizer;
       
    public class BOJ_9375_패션왕신해빈 {
    	public static void main(String[] args) throws Exception {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		StringBuilder sb = new StringBuilder();
    		int T = Integer.parseInt(br.readLine());
       
    		for (int tc = 0; tc < T; tc++) {
    			int clothesNum = Integer.parseInt(br.readLine());
    			HashMap<String, Integer> hm = new HashMap<String, Integer>();
    			for (int cn = 0; cn < clothesNum; cn++) {
    				StringTokenizer st = new StringTokenizer(br.readLine());
    				String nodata = st.nextToken(); // 의상 이름은 필요 X
    				String kindCloth = st.nextToken();
    				if (hm.containsKey(kindCloth)) {
    					hm.replace(kindCloth, hm.get(kindCloth) + 1);
    				} else {
    					hm.put(kindCloth, 1);
    				}
    			}
       
    			int answer = 1;
    			for (int num : hm.values()) {
    				answer *= (num + 1);
    			}
    			sb.append(answer - 1).append('\n');
    		}
       
    		System.out.println(sb);
    	} // end of main
    }
    
  4. 느낀점

    • 해쉬맵 사용법을 잘 익혀두자!

      • HashMap<String, Integer> hm = new HashMap<String, Integer>(); // 이런식으로 선언, 데이터타입은 변할 수 있어!

      • hm.put(string값, integer값) // hashmap에 데이터 넣기

      • hm.get(key값) -> 해당 키값의 value값 출력

      • hm.values() // 해쉬맵에 들어있는 모든 value값들

      • hm.replace(key값, new value값) // hashmap에 해당 key값의 value를 new value값으로 바꿔준다

      • hm.containsKey(key값) // true, false값 return

문제 링크 : 백준 9375 패션왕 신해빈

Leave a comment