스킬의 순서가 주어지고, 스킬들이 주어졌을 때 스킬순서를 만족하는 스킬이 몇개 있는지 검사하는 문제입니다. 데이터 크기가 크지 않아서 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;
}
'알고리즘 문제' 카테고리의 다른 글
[알고리즘 문제] 백준1034 - 램프 (2) | 2020.09.06 |
---|---|
[알고리즘 문제] 백준14502 - 연구소 (0) | 2020.09.02 |
[알고리즘문제] 프로그래머스 - 튜플 (0) | 2020.08.27 |
[알고리즘문제] 프로그래머스 - 크레인 인형뽑기 게임 (0) | 2020.08.27 |
[알고리즘 문제] 백준2178 - 미로탐색 (0) | 2020.08.23 |