시나브로

[ 프로그래머스 ] 스킬트리 본문

알고리즘/프로그래머스

[ 프로그래머스 ] 스킬트리

혬혬 2020. 4. 4. 17:14
728x90

1. skill에 있는 알파벳을 배열에 체크한다. 체크할 때 순서로 표시한다.

2. 각 스킬트리를 보면서 skill에 있는 알파벳이 나오면 순서를 체크하면서 한다. 

#include <string>
#include <vector>

using namespace std;

int solution(string skill, vector<string> skill_trees) {
	int alpha[30] = { 0 };
	for (int i = 0; i < skill.length(); i++) {
		alpha[skill[i] - 'A']=i+1;
	}
	int count = 0;
	for (int i = 0; i < skill_trees.size(); i++) {
		int memory = 0;
		int fail = 0;
		for (int k = 0; k < skill_trees[i].length(); k++) {
			if (alpha[skill_trees[i][k] - 'A'] != 0) {
				if (memory+1 == alpha[skill_trees[i][k] - 'A']) {
					memory = alpha[skill_trees[i][k] - 'A'];
				}
				else {
					fail = 1;
					break;
				}
			}
		}
		if (fail == 0)
			count++;
	}
	return count;
}
728x90
Comments