전공공부/코딩테스트
(c++) 프로그래머스 해시 위장
시아나
2021. 12. 11. 11:59
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
나의 풀이
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
unordered_map<string,int> name;
for (vector<string> v : clothes) {
name[v[1]]++;
}
for (pair<string,int> p : name) {
answer *= (p.second + 1);
}
return answer-1;
}
해당 문제는 조금 고민을 했다.
unordered_map 사용법을 잘 몰라서 어려운 점이 있었다.
풀이방법은 알지만 map의 기능 사용이 미숙해서 오래걸린 케이스이다.
옷의 종류를 key로 주고 해당 key를 가진 옷의 수를 세어서 value 값으로 두었다.
모든 옷 종류의 개수를 구하면 해당 옷으로 만들수 있는 모든 경우의 수에서
아무것도 입지 않은 경우인 1을 빼면 정답이 된다.