https://programmers.co.kr/learn/courses/30/lessons/49993
#include <string>
#include <vector>
#include<iostream>
using namespace std;
int solution(string skill, vector<string> skill_trees) {
int answer = skill_trees.size();
for(int i=0;i<skill_trees.size();i++){
string s = skill_trees[i];
vector<int>idx;
idx.push_back(0);
for(int j=0; j< skill.size() ;j++){
int f = s.find(skill.at(j));
if(f >= 0){ // 찾음
if(idx[j] <= f && idx[j] != -1){
idx.push_back(f);
}else{
answer--;
break;
}
}else{
idx.push_back(-1); // 없음
}
}
}
return answer;
}
#include <string>
#include <vector>
#include<iostream>
using namespace std;
int solution(string skill, vector<string> skill_trees) {
int answer = 0;
for (int i = 0; i < skill_trees.size(); i++) {
vector<char> compare;
for (int k = 0; k < skill_trees[i].size(); k++) {
for (int j = 0; j < skill.size(); j++) {
if (skill[j] == skill_trees[i][k]) {
char tmp = skill[j];
compare.push_back(tmp);
}
}
}
bool check = true;;
for (int c = 0; c < compare.size(); c++) {
if (skill[c] != compare[c]) {
check = false;
}
}
if (check)answer++;
}
return answer;
}