의상
내가 만든 코드
#include <string>
#include <vector>
#include <map>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
map<string, int> maps;
for(vector<string> vec : clothes){
maps[vec[1]]++;
}
auto iter = maps.begin();
while(iter != maps.end()){
answer *= (iter->second + 1);
iter++;
}
return answer -1;
}
코드 설명
* 확률과 통계로 푼다.
잘 모르시는 분을 위해 설명하자면 카드 뽑기라고 생각하면 된다.
* A, B, C라는 종류가 각각 a, b, c개 있을 때
카드가 0번부터 a번까지 있을 때 1개를 뽑는 경우의 수 = a+1 C 1 = a+1
따라서 B, C의 경우의 수 = b+1 C 1 = b+1 , c+1 C 1 = c+1이다.
A, B, C의 경우의 수를 묶는 건 곱하기 연산이다. = (a+1)*(b+1)*(c+1)
* 마지막으로 모든 종류에서 0번 카드가 뽑히는 경우
= (0번, 0번, 0번)이 나올 경우의 수 = 1을 뺀다.
* 따라서 return 값은 (a+1)*(b+1)*(c+1) - 1이다.
사실 못 품
* 못 풀겠어서 힌트를 좀 봤더니
확률과 통계로 푼다는 말을 듣고 바로 풀었다.
* 이게 프로그래밍이야!?
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스 / C++] 더 맵게 (0) | 2023.06.03 |
---|---|
[프로그래머스 / C++] 베스트 앨범 (0) | 2023.06.03 |
[프로그래머스 / C++] 완주하지 못한 선수 (0) | 2023.05.30 |
[프로그래머스 / C++] 전화번호 목록 (0) | 2023.05.30 |
[프로그래머스 / C++] 신고 결과 받기 (0) | 2023.05.22 |