*스킬트리 선행 스킬 순서를 지켜야 하고 배운 순서가 뒤바뀌면 사용 불가능. 이전 스킬을 배워야 이후 스킬을 배움. 안배우면 사용 불가능. #include <iostream> #include <string> #include <vector> using namespace std; int solution(string skill, vector skill_trees) { int answer = 0; vector learned; for (int i = 0; i < skill_trees.size(); i++) { string tree = skill_trees[i]; string s; for (int j = 0; j < tree.size(); j++) { for (int k = 0; k < skill.size(); k++) { if (tree[j] == skill[k]) { s += tree[j]; } } } learned.push_back(s); } for(int i = 0; i < learned.size(); i++) { string s = learned[i]; bool flag = false; for(int j = 0; j < s.size(); j++) { if(s[j] == skill[j]) flag = true; else { flag = false; break; } } if(flag == true || s.size() == 0) answer++; } return answer; } | cs |
::public/코딩테스트 풀이