programmers.co.kr/learn/courses/30/lessons/42578
경우의 수를 구하는 문제이다.
모든 옷에 대한 경우의 수를 구해야 하므로
(옷 종류 + 1) * ( 옷종류 + 1) * ... - 1
을 해줘야 한다. 마지막에 -1은 한 개도 선택안하는 경우다.
그래서 옷종류를 세기 위한 방법으로 자료구조 map을 사용한다.
map iterator 자꾸 잊어버리지 말자!
#include <string>
#include <vector>
#include <unordered_map>
using namespace std;
unordered_map<string, int> um;
int solution(vector<vector<string>> clothes) {
int answer = 0;
int len = clothes.size();
for(int i=0; i<len; i++){
um[clothes[i][1]]++;
}
int sum = 1;
for(auto it=um.begin(); it!=um.end(); it++){
sum *= (it->second +1);
}
answer = sum -1;
return answer;
}
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 2019 카카오 개발자 겨울 인턴십] 불량 사용자 (0) | 2021.01.19 |
---|---|
[프로그래머스 2019 카카오 개발자 겨울 인턴쉽] 튜플 (0) | 2021.01.19 |
[프로그래머스 2019 카카오 개발자 겨울 인턴십] 크레인 인형뽑기 게임 (0) | 2021.01.19 |
[프로그래머스] 레벨3 베스트앨범 (0) | 2021.01.19 |
[프로그래머스] 레벨2 전화번호 목록 (0) | 2021.01.18 |
댓글