#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> collector;
for (vector<string> cloth : clothes) {
collector[cloth[1]]++;
}
for (auto &value : collector){
answer *= value.second + 1;
}
return answer - 1;
}
사실 쉬운 문제인데, 어떻게 풀어야할지 헷갈렸었다. 그런 문제는 보면 조합으로 모든 경우의 수를 찾아봐야하나? 이런 생각도 들고 그랬지만 특정 케이스를 찾는 것이 아닌, 경우의 수만 구하면 되기 때문에 의상 수에 +1을 해서 다 곱하고 -1을 하면 아무것도 안입은 경우를 뺀 모든 경우의 수를 구할 수 있다. +1을 하는 이유는 안입은 경우의 수를 넣는 것이다.
'코딩테스트' 카테고리의 다른 글
[백준 9527] 1의 개수 세기 C++ (0) | 2024.02.27 |
---|---|
[SQL] 프로그래머스 : 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.02.20 |
[C++, 코딩테스트] 프로그래머스 : 큰 수 만들기 with 그리디 (0) | 2024.02.16 |
[C++, 코딩테스트] 프로그래머스 : 가장 먼 노드 (0) | 2024.02.16 |
[코딩테스트, C++, Softeer] 금고털이, 그리디 알고리즘 (0) | 2024.01.19 |
#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> collector;
for (vector<string> cloth : clothes) {
collector[cloth[1]]++;
}
for (auto &value : collector){
answer *= value.second + 1;
}
return answer - 1;
}
사실 쉬운 문제인데, 어떻게 풀어야할지 헷갈렸었다. 그런 문제는 보면 조합으로 모든 경우의 수를 찾아봐야하나? 이런 생각도 들고 그랬지만 특정 케이스를 찾는 것이 아닌, 경우의 수만 구하면 되기 때문에 의상 수에 +1을 해서 다 곱하고 -1을 하면 아무것도 안입은 경우를 뺀 모든 경우의 수를 구할 수 있다. +1을 하는 이유는 안입은 경우의 수를 넣는 것이다.
'코딩테스트' 카테고리의 다른 글
[백준 9527] 1의 개수 세기 C++ (0) | 2024.02.27 |
---|---|
[SQL] 프로그래머스 : 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.02.20 |
[C++, 코딩테스트] 프로그래머스 : 큰 수 만들기 with 그리디 (0) | 2024.02.16 |
[C++, 코딩테스트] 프로그래머스 : 가장 먼 노드 (0) | 2024.02.16 |
[코딩테스트, C++, Softeer] 금고털이, 그리디 알고리즘 (0) | 2024.01.19 |