알고리즘/프로그래머스

[프로그래머스 C++] - 스킬트리

문제 : 스킬트리

 

https://programmers.co.kr/learn/courses/30/lessons/49993

 

 분석

 다중 for 문을 이용하면 쉽게 풀 수 있는 문제이다.

배운 선행 스킬 개수인 int형 cnt 변수와 bool형 변수인 check를 통해 그때그때 판단해서 처리했다.

 

 구현

int solution(string skill, vector<string> skill_trees) {
	int answer = 0, cnt = 0;
	bool check = true; 
	for (int i = 0; i < skill_trees.size(); i++)
	{
		for (int j = 0; j < skill_trees[i].size(); j++)
		{
			for (int x = 0; x < skill.size(); x++)
			{
				if (skill[x] == skill_trees[i][j])
				{
					if (x == cnt)
					{
						cnt++;
						break;
					}
					else
					{
						check = false;
						j = skill_trees[i].size();
						break;
					}
				}
			}
		}
		if (check) answer++;
		check = true;
		cnt = 0;
	}
	return answer;
}