반응형

https://programmers.co.kr/learn/courses/30/lessons/49993?language=cpp

 

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

 

programmers.co.kr

 

각 스킬의 선행 관계를 만들어주었습니다.

#include <string>
#include <vector>
#include <cstring>
using namespace std;

int solution(string skill, vector<string> skill_trees) {
    int answer = 0; // 스킬트리 안맞는 것의 개수
    int chk[26];
    memset(chk, -1, sizeof(chk));
    for(int i=1; i<skill.size(); i++) {
        chk[skill[i]-'A'] = skill[i-1]-'A';
    }
    
    for(int i=0; i<skill_trees.size(); i++) {
        bool trees[26] = {false};
        for(int j=0; j<skill_trees[i].size(); j++) {
            int tree = skill_trees[i][j] - 'A';
            if(chk[tree] != -1) {
                if(!trees[chk[tree]]) {
                    answer++;
                    break;
                }
            }
            trees[tree] = true;
        }
    }
    
    return skill_trees.size() - answer;
}
반응형

'Algorithm' 카테고리의 다른 글

프로그래머스 : 가장 먼 노드  (0) 2021.11.13
프로그래머스 : N으로 표현  (0) 2021.11.13
프로그래머스 : 프린터  (0) 2021.11.13
프로그래머스 : 기능개발  (0) 2021.11.13
프로그래머스 : 섬 연결하기  (0) 2021.11.13

+ Recent posts