
그리디 큐
goal 배열의 길이 만큼 반복합니다.
cards1와 cards2의 첫 번째 요소가 goal의 요소와 같지 않다면 더 이상 만들 수 없다는 것이므로 즉시 No를 반환합니다.
같다면 요소가 있는 cards 배열에서 shift()로 앞 요소를 제거합니다. 그리고 continue로 넘어갑니다.
No가 반환되지 않고 모두 진행되었다는 것은 goal 배열을 만들 수 있는 것이므로 Yes를 반환합니다.
function solution(cards1, cards2, goal) {
for (let i = 0; i < goal.length; i++) {
if (cards1[0] !== goal[i] && cards2[0] !== goal[i]) return "No";
else {
if (cards1[0] === goal[i]) {
cards1.shift();
continue;
} else {
cards2.shift();
continue;
}
}
}
return "Yes";
}