https://school.programmers.co.kr/learn/courses/30/lessons/159994
순서의 단어 배열 규칙에 맞춰서 구현했습니다.
각각의 idx를 따로 계산해서 진행합니다.
첫번째 카드의 현재 idx 위치에서 찾는 게 있는경우 idx++을 치고 넘어가고 첫번째 카드에 없는경우
두번쨰 카드의 두번째 카드의 현재 idx 위치에서 찾는게 있을 경우 두번 째카드의 idx+=1을 치고 다음 goal의 String을 찾아줍니다.
만약 없는 경우에는 NO를 리턴하고 끝내고 전부 다 돌게 되면 answer를 출력하여 끝냅니다.
간단한 구현
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
String answer = "Yes";
int first_card_idx = 0;
int second_card_idx =0;
for(int idx = 0; idx < goal.length;idx++){
//첫번째 카드에서 idx 위치의 값이 goal과 같은경우
if(first_card_idx < cards1.length && cards1[first_card_idx].equals(goal[idx])) {
first_card_idx += 1;
continue;
}
if(second_card_idx < cards2.length && cards2[second_card_idx].equals(goal[idx])){
second_card_idx +=1;
continue;
}
return "No";
}
return answer;
}
}