높은곳에영광 2022. 1. 16. 23:17

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int solution(string skill, vector<string> skill_trees) {
    int answer = 0;
    int j = 0;
    if(skill.size() == 1) return skill_trees.size();
    for(int a = 0; a < skill_trees.size(); ++ a) {
        for(int i = skill.size()-1; i > 0; --i) {
            j = i - 1;
            auto first = find(skill_trees[a].begin(), skill_trees[a].end(), skill[i]);
            auto second = find(skill_trees[a].begin(), skill_trees[a].end(), skill[j]);
            
            if(first == skill_trees[a].end() && second == skill_trees[a].end()) {
                if(j == 0) ++ answer;
                continue;
            }
            //if(second == skill_trees[a].end()) break;
            if(second > first) break;
            if(j == 0) ++answer;
        }
    }
    return answer;
}