티스토리 뷰

문제 링크

 

코딩테스트 연습 - 위장

 

programmers.co.kr

 

 

 

풀이

중복되지 않는 map 컨테이너를 이용해서 갯수를 하나씩 증가시켰다(해당 key에 대해 횟수 증가하기 좋은 컨테이너)

그리고 (종류1 집합(공집합 포함) * 종류2 집합(공집합 포함) * .... = 다른 종류로 입을 수 있는 가짓수) 가 나오며 공집합끼리 겹쳐있는 것을 제외하기 위해 (-1)을 하였다.

 

공집합 = 안입는 경우

 

 

더보기
#include <string>
#include <vector>
#include <map>

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    map<string, int> m;
    
    for(auto e: clothes) m[e[1]]++;
    for(auto i=m.begin(); i!=m.end(); i++) answer *= (i->second)+1;
    
    return answer-1;          // 다른 옷의 조합의 수 리턴
}
728x90
반응형
댓글
05-04 06:54
링크