좀 아쉽게 생각만 하고 못풀어서 답을 참고한 문제다. 이 문제는 투포인터 타입의 문제였는데 단순하게 target 과 source 를 n^2로 탐색하면은 절대 못풀고 target 을 한번 루프 돌면서 source에서의 투포인터 관계를 만들어야 했다.
만약에 현재 내가 보고 있는 target 포인터 캐릭터와 source 포인터 캐릭터가 동일하다면? 두 포인터 값을 올려주고... 아니라면은 source 포인터 하나만 올려주면 됐다.
이렇게 캐릭터 하나하나 알 수 있는 투포인터 방법을 배우니깐 좋다.
class Solution {
public:
int shortestWay(string source, string target) {
int left = 0, right = 0;
int answer = 0;
bool flag = false;
while(right < target.length()){
left = 0;
while(left < source.length()){
if(source[left] == target[right]){
left++;
right++;
flag = true;
} else{
left++;
}
}
if(!flag) return -1;
answer ++;
flag = false;
}
return answer;
}
};