check배열과 pos를 이용해 이전값과 비교함으로써 순서대로 진행되는지 체크했다.
#include <string>
#include <vector>
using namespace std;
int check[30] = { 0 };
int solution(string skill, vector<string> skill_trees) {
int answer = 0;
for(int i = 0; i < skill_trees.size(); i++) {
int cur = 0, flag = 0;
int pos = -1;
for(int i = 0; i < skill.size(); i++) { check[i] = 0; }
while (cur < skill.size() && flag == 0) {
for(int j = 0; j < skill_trees[i].size(); j++) {
if(skill[cur] == skill_trees[i][j]) {
if(pos < j && (cur == 0 || (cur > 0 && check[cur - 1] == 1))) {
pos = j;
check[cur] = 1;
}
else { flag = 1; }
break;
}
}
cur++;
}
if(flag == 0) { answer++; }
}
return answer;
}
|
cs |
'problem solving' 카테고리의 다른 글
[프로그래머스]쇠막대기 (0) | 2020.03.07 |
---|---|
[프로그래머스]기능개발 (0) | 2020.03.07 |
[프로그래머스]탑 (0) | 2020.03.07 |
[프로그래머스][1차] 다트 게임 (0) | 2020.03.06 |
[프로그래머스]실패율 (0) | 2020.03.06 |