본문 바로가기

Algorithm/Programers - C++

[프로그래머스] 위장

문제

 

풀이

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

using namespace std;

// (x+a)(x+b)(x+c) = x3 + (a+b+c)x2 + (ab+bc+ca)x + (abc)

int solution(vector<vector<string>> clothes) {
    map<string , int> map;
    int answer = 0;
    for(vector v : clothes){
        map[v[1]]++;
    }
    
    int n = 1;
    for(auto m : map){
        n *= (m.second+1);
    }
     answer += n -1;
    
    return answer;
}
(x+a)(x+b)(x+c) = x3 + (a+b+c)x2 + (ab+bc+ca)x + (abc)

수학적 해결방법으로 알고리즘을 구현했다.

 

 

 

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges