https://programmers.co.kr/learn/courses/30/lessons/42578
map을 이용해서 간단하게 풀 수 있는 문제이다.
옷의 종류를 key로 해당 종류에 속하는 옷들의 개수를 value로 넣는다.
즉, 해당 옷의 종류가 map에 존재하지 않으면 값을 1로 새로 추가해주고
이미 존재한다면 값을 증가시킨다.
그리고 map을 검사하면서 정답을 구해준다.
각 옷의 종류의 개수 + 1 한 값을 answer에 곱해주고 마지막에 -1을 해주면 된다.
(각 옷을 선택하는 경우 + 선택하지 않는 경우)를 모두 곱해주고 하나도 선택하지 않은 경우를 하나 빼주는 것이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <string>
#include <vector>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> m;
for(auto elem : clothes) {
if(m.find(elem[1]) == m.end()) {
m.insert(make_pair(elem[1],1));
} else {
m[elem[1]]++;
}
}
for(auto iter=m.begin(); iter != m.end(); iter++) {
answer *= (iter->second + 1);
}
answer -= 1;
return answer;
}
Colored by Color Scripter
|
'프로그래머스' 카테고리의 다른 글
프로그래머스 (2018년)KAKAO BLIND RECRUITMENT 오픈채팅방 c++ (0) | 2019.08.22 |
---|---|
프로그래머스 탑 (c++) (0) | 2019.08.20 |
프로그래머스 프린터 (c++) (0) | 2019.08.20 |
프로그래머스 전화번호 목록 (0) | 2019.08.19 |
프로그래머스 완주하지 못한 선수 (1) | 2019.08.19 |