쾌락없는 책임 (공부)/알고리즘 문제풀이
[Algorithm] 프로그래머스 위장 - C++, unordered_map
허스크
2022. 5. 11. 20:10
반응형
https://programmers.co.kr/learn/courses/30/lessons/42578
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
unordered_map<string, int> map;
for(auto cloth : clothes){
map[cloth[1]]++;
}
for(auto pair : map){
answer *= pair.second + 1;
}
return answer-1;
}
unordered_map을 잘 이해해두면 쉽게 풀 수 있는 문제였습니다. 옷의 카테고리를 key로 사용해 같은 카테고리의 옷끼리 묶어둔뒤 (각 카테고리에 있는 가짓수 + 1)을 전부 곱해준 뒤 1을 빼면 되는 문제였습니다.
여기서 answer에 1을 더해서 곱하는 이유는 1이 뜻하는게 '아무것도 입지 않은 상태' 이며 마지막에 1을 빼주는 이유는 '모든 카테고리에서 아무것도 입지 않은 경우를 제외' 하기 위함입니다.
반응형