본문 바로가기
[프로그래머스]

프로그래머스 위장 C++

by Hevton 2023. 8. 17.
반응형

 

수학적 사고의 중요성을 느끼게 해준 문제

난 더 잘할 수 있다. 이 문제를 통해서 많이 배웠다.

 

(각 옷의 종류의 갯수 + 1) 만큼씩 곱해주면 되는데

+ 1은, 해당 옷의 종류를 입지 않는 경우를 의미한다.

 

그럼 곱해진 모든 경우의 수 중에, 아무 옷도 입지 않는 경우가 한가지 들어가 있을 것이기에

마지막에 -1을 해주면 된다.

#include <string>
#include <vector>
#include <map>
#include <set>
#include <iostream>

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    
    map<string, int> m;
    
    for(auto cloth : clothes) {
        m[cloth[1]]++;
    }
    
    
    for(auto x : m) {
        answer *= (x.second + 1);
    }
    
    return answer - 1; // 아무것도 안 입는 경우 포함되어있음

}

 

반응형