C++:: 프로그래머스 <위장>

jahlee·2023년 3월 27일
0

프로그래머스_Lv.2

목록 보기
19/106
post-thumbnail

입을수 있는 옷들의 종류를 알아내면 된다. map을 사용하여 중복 종류의 옷들을 체크한다.

#include <string>
#include <vector>
#include <map>
using namespace std;

int solution(vector<vector<string>> clothes)
{
    int answer = 1;
    map<string, int> m;
    for(auto c : clothes) m[c[1]]++;//중복되는 종류의 옷++
    for(auto c : m) answer *= c.second + 1;
    return answer-1;
}

공식 부분의 핵심을 예시로 들어보자.
모자 : 2개
상의 : 3개
하의 : 1개 일때

총 입을수 있는 가지수는
(모자 2개 + 안쓰기) x (상의 3개 + 안입기) x (하의 1개 + 안입기)
=> 3 x 4 x 2 == 24가지이다.
이때 모든옷을 안입는 가지수는 빼주어야하기때문에 마지막에 -1 해준다.

0개의 댓글