반응형
programmers.co.kr/learn/courses/30/lessons/42578?language=cpp
map을 사용해 풀 수 있었던 문제였습니다.
풀이방법
1. 각 카테고리 별로 '입지 않음'라는 의상을 추가해 생각해봅니다.
2. 각 카테고리 당 의상 수 + '입지 않음' 만큼을 answer에 곱해줍니다. 이렇게 된다면 최소 의상을 1개 입는 경우도 ['입지 않음','안경'] 이런 식으로 표현될 수 있으므로 모든 경우를 구할 수 있습니다.
3. 모든 경우의 수 - 모두 '입지 않음'인 경우(1가지)가 답이 됩니다.
Code
#include <bits/stdc++.h>
using namespace std;
int solution(vector<vector<string>> clothes) {
int answer = 1;
int clothCnt = 0 ;
map <string,vector<string>> comb;
for(int i = 0; i < clothes.size(); i++) comb[clothes[i][1]].push_back(clothes[i][0]);
for(auto category : comb)
answer *= category.second.size() + 1;
return answer - 1;
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 프로그래머스(고득점 kit - 스택/큐) : 프린터 답 (2) | 2021.02.05 |
---|---|
(C++) - 프로그래머스(고득점 kit - Hash) : 베스트앨범 답 (0) | 2021.02.02 |
(C++) - 백준(BOJ) 11279번 : 최대 힙 답 (0) | 2020.09.11 |
(C++) - 백준(BOJ) 5635번 : 생일 (0) | 2017.04.01 |
(C++) - 백준(BOJ)코딩 2056번:작업 답 (0) | 2017.02.16 |