코딩테스트/프로그래머스
[프로그래머스] 의상 (C++)
Deff_a
2024. 8. 18. 12:42
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
map을 이용하여 신체 부위 별 의상 갯수를 리스트업 한 다음, 모든 경우의 수를 구한다.
이때, 옷은 입지 않는 경우의 수도 있기 때문에 + 1을 하고 return할 때, 아무것도 안 입는 경우를 빼준다.
#include <string>
#include <vector>
#include <map>
// https://school.programmers.co.kr/learn/courses/30/lessons/42578#
using namespace std;
map <string, int> maps;
int solution(vector<vector<string>> clothes) {
int answer = 1;
for(int i = 0; i< clothes.size(); i++){
maps[clothes[i][1]]++;
}
for(auto it = maps.begin(); it != maps.end(); it++){
answer *= it -> second + 1; // 입지 않는 경우 + 1
}
return answer - 1; // 아무것도 입지 않은 경우는 존재하지 않으니 -1
}