문제 출처:
https://programmers.co.kr/learn/courses/30/lessons/49993
이번 문제는 if문을 잘 활용해야하는 문제였습니다. 모든 조건에 맞는 결과를 도출하기까지 조금 까다로워서 헛집은 적이 좀 많네요 앞으로 분발해야겠습니다.
#include <string>
#include <vector>
using namespace std;
int solution(string skill, vector<string> skill_trees) {
int answer = 0 ;
for(int i = 0 ; i < skill_trees.size(); i++){
int skill_i = 0, skill_ti = 0 ;
for(int j = 0 ; j < skill_trees[i].length() ; j++){
for(int k = 0 ; k < skill.length(); k++){
if(skill_trees[i][j] == skill[k])
skill_ti += 1 ;
}
if(skill_trees[i][j] == skill[skill_i])
skill_i += 1 ;
}
if(skill_i == skill_ti)
answer +=1 ;
}
return answer;
}
해당 코드는
https://datacodingschool.tistory.com/87
이 블로거의 python 코드를 참조하였습니다.
간단한 설명을 첨부하자면 skill안에 포함을 인식하는 skill_ti와 string 내에서 char가 일치를 확인하는 skill_i라는 두 변수를 선언하여 각각 비교하고 그 값이 같은지로 정답인지 아닌지를 판단하였습니다.
https://github.com/gurcks8989/CodingTest/blob/master/Programmers/P49993_SkillTrees.cpp
훈수, 조언 언제나 환영입니다.