*문제 출처는 프로그래머스에 있습니다.
문제 제목: 의상 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=cpp
문제 설명
나의 풀이
#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 (pair<string, int> p : m) {
answer *= (p.second + 1);
}
answer -= 1;
return answer;
}
재귀 함수로 모든 경우의 수를 더하는 것과 모든 경우의 수에서 -1한 결과 값이 이 문제에서는 동일하게 작용한다.
※ 알아야 할 것
해시 문제는 map을 이용한 풀이를 사용하면 쉽게 풀린다.
map은 key-value 형식으로 이뤄져 있으며, 중복을 삭제해주고 key기준으로 오름차순이 된다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-C++' 카테고리의 다른 글
Programmers / 기능개발 / C++ (0) | 2024.03.04 |
---|---|
Programmers / 안전지대 / C++ (0) | 2024.02.28 |
Programmers / 프로세스 / C++ (0) | 2024.02.27 |
Programmers / H-Index / C++ (0) | 2024.02.26 |
Programmers / n^2 배열 자르기 / C++ (0) | 2024.02.23 |