본문 바로가기
전공공부/코딩테스트

(c++) 프로그래머스 해시 위장

by 시아나 2021. 12. 11.

https://programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr


나의 풀이

#include <string>
#include <vector>
#include <unordered_map>

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    unordered_map<string,int> name;
    for (vector<string> v : clothes) {
        name[v[1]]++;
    }
    for (pair<string,int> p : name) {
        answer *= (p.second + 1);
    }
    return answer-1;
}

해당 문제는 조금 고민을 했다. 

unordered_map 사용법을 잘 몰라서 어려운 점이 있었다.

풀이방법은 알지만 map의 기능 사용이 미숙해서 오래걸린 케이스이다.

 

옷의 종류를 key로 주고 해당 key를 가진 옷의 수를 세어서 value 값으로 두었다.

 

모든 옷 종류의 개수를 구하면 해당 옷으로 만들수 있는 모든 경우의 수에서

아무것도 입지 않은 경우인 1을 빼면 정답이 된다.