본문 바로가기
  • 실행력이 모든걸 결정한다
Algorithm/기타 알고리즘

[시뮬레이션] 스킬트리 - Summer/Winter Coding(~2018)

by 김코더 김주역 2022. 4. 29.
반응형

해결 방법

먼저 스킬트리의 순서를 map에 저장해두고, 뒤에 나와야 할 스킬이 앞에 나왔다면 그 스킬트리는 잘못 됐다고 판단하면 된다.

 

 

소스 코드

#include <vector>
#include <map>
using namespace std;
map<char, int> m;

int solution(string skill, vector<string> skill_trees) {
    int answer = 0;
    for(int i=0;i<skill.length();i++) m[skill[i]]=i; // 스킬, 스킬 인덱스 쌍을 map에 저장
    
    int s;
    bool p; // 스킬트리 사용 가능 여부
    for(int i=0;i<skill_trees.size();i++){
        s=0; p=true;
        for(int j=0;j<skill_trees[i].size();j++){
            if(m.count(skill_trees[i][j])){
                if(m[skill_trees[i][j]]==s) s++;
                else p=false;
            }
        }
        if(p) answer++;
    }
    return answer;
}

 

테스트케이스 14개 모두 정답

 

반응형

댓글