-
[윈터코딩] 스킬트리알고리즘/윈터코딩 2020. 10. 29. 00:39
programmers.co.kr/learn/courses/30/lessons/49993
1, 관심이 있는 정보는 어차피 skill 문자열에 있는 문자들이기 때문에 조사하고자 하는 문자열을 순회하여 skill에 있는 문자들만 뽑아내고 skill에 있는 인덱스를 벡터로 다시 만들어서 조사를 한다.
2, 벡터를 순회하면서 인덱스 숫자가 순차적으로 늘어나는지 확인한다.
#include <string> #include <vector> using namespace std; vector<int> renewal(string skill, string search) { vector<int> result; int str_size = search.size(); for (int i = 0; i < str_size; i++) { if (skill.find(search[i]) != string::npos) { result.push_back(skill.find(search[i])); } } return result; } int solution(string skill, vector<string> skill_tree) { int answer = 0; int v_size = skill_tree.size(); for (int i = 0; i < v_size; i++) { vector<int> search = renewal(skill,skill_tree[i]); int num = -1; int search_size = search.size(); int flag = 0; for (int j = 0; j < search_size; j++) { if (num+1 != search[j]) { flag = 1; break; } num = search[j]; } if (flag == 0) answer++; } return answer; }
'알고리즘 > 윈터코딩' 카테고리의 다른 글
[윈터코딩] 방문길이 (0) 2020.10.29 [윈터코딩] 지형이동 (0) 2020.10.29 [윈터코딩] 멀쩡한 사각형 (0) 2020.10.27