문제 설명
의상들이 담긴 2차원 배열 clothes에서 서로 다른 옷의 조합의 수를 return
https://school.programmers.co.kr/learn/courses/30/lessons/42578
문제 풀이법
clothes는 [의상의 이름, 의상의 종류]로 이루어져 있으므로 map을 사용하여 의상의 종류별로 몇개의 의상이 있는지 count 해주었다
각 옷의 조합의 수를 return 하는 것이므로 각 종류의 의상 수를 다 곱해보면 되는데 주의해야 할 것이 2개 있다
우선 곱할때 answer = 1를 두고 곱하고 나중에 return할 때 -1을 해주었다
answer = 0인 상태로 곱하면....
그리고 곱할때 의상의 수 + 1를 해주었다
1을 더해준 이유는 해당 의상의 종류를 입지 않는 경우도 있기 때문이다
소스 코드
#include <string>
#include <vector>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> m;
for (int i = 0; i < clothes.size(); i++)
m[clothes[i][1]]++;
for (auto it = m.begin(); it != m.end(); it++) {
answer *= (it->second + 1);
}
return answer - 1;
}
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 2단계 - 타켓 넘버 (0) | 2024.02.03 |
---|---|
[프로그래머스] 2단계 - 튜플 (0) | 2024.02.03 |
[프로그래머스] 2단계 - 2 x n 타일링 (0) | 2024.02.02 |
[프로그래머스] 2단계 - 게임 맵 최단거리 (0) | 2024.02.02 |
[프로그래머스] 2단계 - 행렬의 곱셈 (0) | 2024.02.02 |