본문 바로가기

c++/프로그래머스

프로그래머스 : 스킬트리 level 2 C++

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

 

코딩테스트 연습 - 스킬트리

 

programmers.co.kr

 

풀이

1.주어진 testcase순서대로

2. 주어진 선행스킬순서에 있는 스킬이 나왔다

 - 근데 앞선 선행 스킬을 안배운 상태면 flag =0으로 만듬

3. flag가 0이 아닌경우에만 answer+1

 

#include <string>
#include <vector>
 
using namespace std;
 
int solution(string skill, vector<string> skill_trees) {
    int answer = 0;
    int flag = 1;
    int check = 0;
    
    for(int i = 0; i < skill_trees.size(); i++) //tc
    {
        check = 0;//스킬트리 확인용
        flag = 1;
        for(int j = 0; j < skill_trees[i].size(); j++)
        {
            int nDelimiter = skill.find(skill_trees[i][j]);
            if(nDelimiter < 0 || nDelimiter > 30) // 스킬트리에 없으면
            {
                continue;
            }
            else if(nDelimiter != check)//순서대로 아니라 다른 스킬 나오면
            {
                flag = 0;
                break;
            }
            else
                check++;
        }
        if(flag==1)
            answer++;
    }
    return answer;
}