티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/42578
코딩테스트 연습 - 위장
programmers.co.kr
옷의 이름과 옷의 종류가 담겨져있는 2차원 배열을 argument로 넘겨준다.
모든 옷을 다르게 입는 경우의 수를 출력하는 것이다.
int solution(vector<vector<string>> clothes) {
map<string, int> ssang;
for (int i = 0; i < clothes.size(); i++) {
bool sw = false;
if (i == 0) ssang.insert(pair<string, int>(clothes[i][1], 1));
else {
for (map<string, int>::iterator it = ssang.begin(); it != ssang.end(); it++) {
if (it->first == clothes[i][1]) {
sw = true;
it->second += 1;
break;
}
}
if(sw !=true) {
ssang.insert(pair<string, int>(clothes[i][1], 1));
}
}
}
int answer = 1;
for (map<string, int>::iterator it = ssang.begin(); it != ssang.end(); it++) {
answer *= (it->second + 1);
}
return answer - 1;
}
map을 선언하고 parameter로 받아온 배열에 있는 옷의 종류 및 옷의 갯수를 구한다.
그리고 각 옷의 종류마다 옷을 입을경우 + 옷을 입지않을 경우를 곱하면 모든 경우의 수가 계산된다.
'알고리즘 문제 풀이' 카테고리의 다른 글
[알고리즘문제] 백준 패션왕 신해빈(9375번) (0) | 2021.04.13 |
---|---|
[알고리즘문제] 백준 베스트셀러(1302번) (0) | 2021.04.13 |
[알고리즘문제] 릿코드 Design HashMap (0) | 2021.04.08 |
[알고리즘문제] 릿코드 Design Hash Set (0) | 2021.04.08 |
[알고리즘문제] 릿코드 Find Common Characters (0) | 2021.04.07 |