본문 바로가기
알고리즘 문제

[알고리즘문제] 프로그래머스 - 스킬트리

by 박연호의 개발 블로그 2020. 9. 1.

스킬의 순서가 주어지고, 스킬들이 주어졌을 때 스킬순서를 만족하는 스킬이 몇개 있는지 검사하는 문제입니다. 데이터 크기가 크지 않아서 3중 for문으로 풀었고, 각 스킬마다 스킬순서와 같은 알파벳을 temp에 모두 더했습니다. 그리고 temp와 스킬순서를 비교하면서 알파벳이 모두 같으면 answer++을 해주었습니다.

 

#include <string>
#include <vector>

using namespace std;

int solution(string skill, vector<string> skill_trees) {
    
    int answer = 0;
    for(string s:skill_trees){
        string temp="";
        for(int j=0;j<s.length();j++){
            for(int k=0;k<skill.length();k++){
                if(s[j]==skill[k]){
                    temp+=s[j];
                }
            }
        }
        
        bool ordered = true;
        for(int t=0;t<temp.length();t++){
            if(temp[t]!=skill[t]){
                ordered=false;
                break;
            }
        }
        if(ordered){
            answer++;
        }
    }
    
    return answer;
}