🖥️ CS/SW Expert 외의 Algorithms

(프로그래머스 C++) Lv2 위장

한국의 메타몽 2020. 10. 15. 10:06

링크 : programmers.co.kr/learn/courses/30/lessons/42578

 

코딩테스트 연습 - 위장

 

programmers.co.kr

분류 : 해시


해시의 개념을 모르고 있었기에, 최대한 아는 개념을 동원해 vector로 문제를 풀려했다.

채점 후 몇몇 테스트 케이스에서 실패가 나고 코드가 점점 길어지자 다른 문제 해결 방법이 필요하다는 것을 깨달았다. 

map이라는 개념을 파악한 뒤, 해당 개념을 통해 문제를 접근했다.


#include <string>
#include <vector>
#include <iterator>
#include <map>

using namespace std;

int solution(vector<vector<string>> clothes) {
    int answer = 1;
    map<string, int> map1;
    for (int i = 0; i < clothes.size(); i++) {
        map1[clothes[i][1]]++;
    }
    map<string, int>::iterator i;
    for (i = map1.begin(); i != map1.end(); i++) {
        answer *= i->second + 1;
    }
    return answer - 1; // 모두 안입는 경우는 제외
}