728x90
반응형
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/49993
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
728x90
👩💻 코드
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
int solution(string skill, vector<string> skill_trees) {
int answer = skill_trees.size();
queue<char> skillPriority;
vector<char> skillList;
for(int i=0; i<skill.size(); i++){
skillPriority.push(skill[i]);
skillList.push_back(skill[i]);
}
for(auto skillTree : skill_trees){
queue<char> temp = skillPriority;
for(auto skill : skillTree){
if(find(skillList.begin(), skillList.end(), skill) != skillList.end()){
if(skill != temp.front()){
answer--;
break;
}else{
temp.pop();
}
}
}
}
return answer;
}
📝 풀이
주어진 skill_tress의 size만큼 answer을 초기화합니다.
주어진 skill을 문자로 쪼개어 queue와 vector에 초기화합니다.
skillTree 중 skill에 존재하는 문자라면 skillPriority의 가장 앞에 있는 문자인지 비교합니다.
다르다면 잘못된 스킬트리임으로 answer을 감소시킵니다.
같다면 올바른 스킬트리임으로 skillPriority를 pop 합니다.
최종적으로 answer을 return합니다.
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 택배상자 (0) | 2024.08.20 |
---|---|
[프로그래머스] 주차 요금 계산 (0) | 2024.08.19 |
[프로그래머스] 땅따먹기 (0) | 2024.08.18 |
[프로그래머스] 더 맵게 (0) | 2024.08.16 |
[프로그래머스] 방문 길이 (0) | 2024.08.16 |