[Programmers] 스킬트리(Lv.2)

Alice·2023년 8월 19일
0

풀이 소요시간 : 20분

Map 자료구조를 사용하여 간단하게 풀 수 있었다. 처음에는 구조체를 사용하려했는데 너무 복잡한것 같아서 조금 더 단순한 방법이 있을지 고민했다. 제출 후 다른 풀이과정을 참고했지만 내 풀이가 거의 가장 깔끔한 것 같았다.

전체 코드

#include <string>
#include <vector>
#include <map>
#include <iostream>
using namespace std;

int State = 1;
int Ans = 0;
map<char, int> Map;

int solution(string skill, vector<string> skill_trees) {
    
    for(int i = 0; i < skill.length(); i++)
    {
        Map[skill[i]] = i + 1;
    }
    
    for(string S : skill_trees)
    {
        for(int i = 0; i < S.length(); i++)
        {
            char C = S[i]; 
            
            if(State > Map[C]) continue;
            else if(State == Map[C]) 
            {
                State++;
            }
            else if(State < Map[C]) 
            {
                Ans--;
                break;
            }

        }
        Ans++;
        State = 1;
    }
    
    return Ans;
    
}
profile
SSAFY 11th

0개의 댓글