요르딩딩

[프로그래머스]해시 - 위장 (Level2) 본문

[코딩테스트]/문제풀이

[프로그래머스]해시 - 위장 (Level2)

요르딩딩 2021. 5. 24. 17:49
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

import java.util.*;
import java.util.HashMap;

class Solution {
    public int solution(String[][] clothes) {

        // map(key,value) value는 동일한 종류의 수
        HashMap<String, Integer> map = new HashMap<String, Integer>();
        for (int i = 0; i < clothes.length; i++) {
            if (!map.containsKey(clothes[i][1])) {
                map.put(clothes[i][1], 2); // 1개 종류당 있고,없고 : 경우의수 2가지로 시작함
            } else {
                map.put(clothes[i][1], map.get(clothes[i][1]) + 1);
            }
        }

        int result = 1;
        for (String key : map.keySet()) {
            result *= map.get(key);
        }

        int answer = result - 1;
        return answer;

    }
}

 

[POINT]

1. map을 for문으로 사용하고자 할때 : for (String key : map.keySet())

2. 2차원 배열.length행의 수이다.

3. 경우의 수 : 존재X, 존재O이 기본이다. 

 

728x90
반응형
Comments