problem solving

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

Shinuk Yi 2020. 3. 7. 12:40

check배열과 pos를 이용해 이전값과 비교함으로써 순서대로 진행되는지 체크했다.

#include <string>
#include <vector>
 
using namespace std;
 
int check[30= { 0 };
 
int solution(string skill, vector<string> skill_trees) {
    int answer = 0;
    
    for(int i = 0; i < skill_trees.size(); i++) {   
        int cur = 0, flag = 0;
        int pos = -1;
        for(int i = 0; i < skill.size(); i++) { check[i] = 0; }
        while (cur < skill.size() && flag == 0) {
            for(int j = 0; j < skill_trees[i].size(); j++) {
                if(skill[cur] == skill_trees[i][j]) {
                    if(pos < j && (cur == 0 || (cur > 0 && check[cur - 1== 1))) {
                        pos = j;
                        check[cur] = 1;
                    }
                    else { flag = 1; }
                    break;
                }    
            }
            cur++;
        }
        if(flag == 0) { answer++; }
    }
    return answer;
}
cs