그리디
큐
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";
}