[C_C++]코딩테스트 연습/[프로그래머스] level 2
[C++] 프로그래머스 hash 2 - 위장
코딩굼벵이
2021. 10. 17. 17:17
728x90
[Level 2]
내 풀이
옷의 종류와 개수를 담는 <string, int> unordered_map을 만든다.
예를 들어 얼굴 2, 상의 1, 하의 1 일 경우를 생각해보면 안 입는 경우를 0으로 두어 (0,1,2), (0,1), (0,1) 을 갖는다고 생각할 수 있다.
적어도 하나 이상은 입으므로 (옷 종류마다의 개수+1)끼리 곱한 후 전부 0인 경우 1가지를 빼주면 된다. (3*2*2 - 1 = 11)
int solution(vector<vector<string>> clothes) {
int answer = 1;
unordered_map<string, int> map;
for (auto i : clothes) {
map[i[1]]++;
}
for (auto i : map) {
answer *= i.second + 1;
}
return answer - 1;
}