[프로그래머스][C++]스킬트리

C++/알고리즘 문제|2019. 9. 14. 16:48

문제: https://programmers.co.kr/learn/courses/30/lessons/49993

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

using namespace std;
map<char,char> needs;

bool isCheck(string skillTree) {
    for (int i=0;i<skillTree.size();i++) {
        if (needs.find(skillTree[i])==needs.end()) continue;
        bool isExists=false;
        for (int j=0;j<i;j++) {
            if (skillTree[j]==needs[skillTree[i]]) {
                isExists=true;
                break;
            }
        }
        if (!isExists) return false;
    }
    return true;
}

int solution(string skill, vector<string> skill_trees) {
    for (int i=1;i<skill.size();i++){
        needs[skill[i]]=skill[i-1];
    }
    
    int answer = 0;
    for (int i=0;i<skill_trees.size();i++) {
        if (isCheck(skill_trees[i])) {
            answer++;
        }
    }

    return answer;
}

'C++ > 알고리즘 문제' 카테고리의 다른 글

[프로그래머스][C++]추석 트래픽  (0) 2019.09.14
[프로그래머스][C++] 기능개발  (0) 2019.09.14

댓글()