[プログラマー]ハッシュ-偽装


組み合わせで解くのはとても簡単です.
(1)服ごとに数を数える
(2)+1に乗じて,服を着た義手を求めることができる.
(3)-1何も着ない場合を制限します.
import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;
        HashMap<String,Integer> type = new HashMap<String,Integer>();
        for(int i=0; i<clothes.length; i++){
            if(type.containsKey(clothes[i][1])){
                type.replace(clothes[i][1], type.get(clothes[i][1])+1);
            } else {
                type.put(clothes[i][1], 1);
            }
        }

        for(String s: type.keySet()){
            answer *= type.get(s)+1;
        }
        return answer-1;
    }
}