프로그래머스/lv2/49993. 스킬트리

SITY·2023년 10월 26일
0

Cpp_Algorithm

목록 보기
34/43

#include <string>
#include <vector>

using namespace std;

int solution(string s, vector<string> st) {
    int answer = 0;
    for (int i = 0; i < st.size(); i++) {
        int idx = 0, check = true;
        for (int j = 0; j < st[i].size(); j++)
            if (s.find(st[i][j]) != string::npos)
                if (st[i][j] != s[idx]) {
                    check = false;
                    break;
                } else 
                    idx++;
        if (check)
            answer++;
    }

    return answer;
}

선행 스킬트리는 따로 인덱스를 지정해준다.
idx를 지정하고 만약 현재 스킬 st[ i ][ j ]가 선행 스킬트리를 요구하는 스킬이고,
선행 스킬트리의 첫번째를 나타내는 idx와 같다면 idx++,
같지 않다면 현재 배워야하는 스킬트리는 선행 스킬트리를 배우지 못하는 스킬트리이기 때문에 check를 false로 바꾼 뒤 break해준다.
그리고 Inner loop에서 check가 true로 유지되어 내려온다면 해당 스킬트리는 가능한 스킬트리이기 때문에 answer을 올린다.

profile
·ᴗ·

0개의 댓글