Algorithm
[Algorithm] 프로그래머스 C++ : 위장
dokylee
2020. 7. 12. 17:48
https://programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
그냥 수학 계산으로 풀면 됨.
일단 map을 사용해서 각 옷의 종류마다 몇 벌이 있는지 세고
각 (벌+1)을 다 곱하고 마지막에 1만 빼주면 answer.
** m.find(i[1]) == m.end() 이면 없는 key값이라는 것 명심
Code
#include <string>
#include <vector>
#include <iostream>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> m;
for(auto i : clothes){
if(m.find(i[1]) == m.end()) {
m.insert(make_pair(i[1], 1));
}
else {
m.find(i[1]) -> second ++;
}
}
for(auto i = m.begin(); i != m.end(); i++){
answer *= (i->second + 1);
cout << "key : " << i->first << " " << "value : " << i->second << '\n';
}
return answer-1;
}