[Programmers] 스킬트리
Algorithm2021. 11. 7. 15:15
반응형
조건을 너무 복잡하게 생각했었다.
다시 종이에 그리면서 해보니깐 단순했다.
머쓱 ^^
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int solution(string skill, vector<string> skill_trees)
{
int answer = 0;
int flag = 0;
vector<int> map(26);
fill(map.begin(), map.end(), -1);
for(int i=0; i<skill_trees.size();i++)
{
for(int k=0; k<skill.size(); k++)
{
map[skill[k] - 65] = 21 + k;
}//skill_tree의 default 값을 True로 설정
//21부터 설정한 이유는 skill_trees.size()가 최대 20이기 때문
for(int k=0; k<skill_trees[i].size(); k++)
{
map[skill_trees[i][k] - 65] = k;
} //skill_trees별 map 제작
for(int k=1; k<skill.size(); k++)
{
if( map[skill[k-1] - 65] >= map[skill[k] - 65] )
flag = 1;
} //map내 skill 순서의 index가 오름차순이 아닐 경우 오답 flag
if(flag == 0)
answer++;
flag = 0; //다음 스킬트리를 확인하고자 초기화
fill(map.begin(), map.end(), -1);
}
return answer;
}
반응형
'Algorithm' 카테고리의 다른 글
[백준] 2799. 블라인드 (0) | 2021.11.09 |
---|---|
[백준] 4344. 평균은 넘겠지 (0) | 2021.11.09 |
[백준] 2920 . 음계 (0) | 2021.11.07 |
[Leetcode] 455. Assign Cookies (0) | 2021.11.07 |
[Leetcode] 211. Design Add and Search Words Data Structure (0) | 2021.09.28 |
댓글()