문제
코니는 하루에 최소 한 개의 의상은 입습니다.
코니가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요.
접근
1) 종류별 구분 진행. -> 종류별 개수 도출 // map을 이용하여 종류변 개수 도출
2) 경우의 수 판단.
코드
#include <vector>
#include <unordered_map>
#include <string>
using namespace std;
int solution(vector<vector<string>> clothes)
{
unordered_map<string,int> type;
int num=0;
//1. 타입별 변수 수 계산
for(auto clothe : clothes)
{
type[clothe[1]]+=1;
}
//2. 총 계산.
//조합의 수 개념
for(auto clothe : type)
{
num*=(clothe.second+1);
}
return num-1;
}
추가로 알게 된 내용
1) 조합의 수 계산법
종류가 A,B가 존재하고
A가 2개, B가 1개 존재한다면 총 조합의 수는 다음과 같다.
옷을 입은 모든 경우의 수 : (A0,A1,A선택안함) * (B0,B선택안함) - 아무것도 안입은 경우
(2+1)*(1+1)-1= 5
'algorism > Hash' 카테고리의 다른 글
[C++]unorderd_map에서 pair<> 사용 불가능한 이유 (0) | 2025.01.23 |
---|---|
[HASH]전화번호 목록 (1) | 2025.01.09 |
[HASH]베스트 앨범 (2) | 2024.12.18 |