#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을 올린다.