스파이가 가진 의상들이 주어질 때, 서로 다른 옷의 조합 수를 구해 반환한다.
경우의 수를 사용하여 풀었다. 먼저 주어진 의상 배열을 돌면서 딕셔너리에 <의상종류, 개수>로 담는다. 최종적으로 모든 경우의 수를 보는 것은 의상 종류에 + 1(포함 안 하는 경우)를 한 후 곱하는 것이다. 이 때 모두 안 뽑는 경우 하나를 마지막에 제외시키면 답을 구할 수 있다!
using System;
using System.Collections.Generic;
public class Solution {
public int solution(string[,] clothes) {
int answer = 1;
// 의상 종류 , 개수
Dictionary<string,int> dict = new Dictionary<string,int>();
for(int i = 0; i < clothes.GetLength(0); i++)
{
if(dict.ContainsKey(clothes[i,1])){dict[clothes[i,1]] += 1;}
else{dict[clothes[i,1]] = 1;}
}
foreach(KeyValuePair<string, int> cloth in dict)
{
answer = answer * (cloth.Value+1);
}
answer -= 1;
return answer;
}
}