본문 바로가기

problem solving

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

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

'problem solving' 카테고리의 다른 글

[프로그래머스]쇠막대기  (0) 2020.03.07
[프로그래머스]기능개발  (0) 2020.03.07
[프로그래머스]탑  (0) 2020.03.07
[프로그래머스][1차] 다트 게임  (0) 2020.03.06
[프로그래머스]실패율  (0) 2020.03.06