https://school.programmers.co.kr/learn/courses/30/lessons/49993
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int solution(string skill, vector<string> skill_trees) {
return ::accumulate(skill_trees.begin(), skill_trees.end(), 0, [&](int acc, string str) {
size_t pos = 0;
for (size_t i = 0; i < str.length(); ++i)
{
auto temp = skill.find(str[i]);
if ((temp != string::npos && temp < pos) // 스킬트리 순서가 차례대로 안나옴
|| (temp != string::npos && temp > pos)) // pos가 0일 경우를 고려한 조건 (BDA일 경우)
return acc;
else if (temp != string::npos) pos = temp + 1;
}
return acc + 1;
});
}
'Coding Test > Programmers' 카테고리의 다른 글
[Programmers] (stack) Lv 2. 뒤에 있는 큰 수 찾기 (0) | 2023.07.14 |
---|---|
[Programmers] (완전탐색) Lv 2. 모음사전 (0) | 2023.07.14 |
[Programmers] (깊이/너비 우선 탐색(DFS/BFS)) Lv 2. 게임 맵 최단거리 (0) | 2023.07.11 |
[Programmers] (Summer/Winter Coding(~2018)) Lv 2. 방문 길이 (0) | 2023.07.10 |
[Programmers] (스택/큐) Lv 2. 주식가격 (0) | 2023.07.09 |
댓글