
์ฝ๋๋ ์์ด ๋จ์ด๊ฐ ์ ํ ์นด๋ ๋ญ์น ๋ ๊ฐ๋ฅผ ์ ๋ฌผ๋ก ๋ฐ์์ต๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์นด๋์ ์ ํ ๋จ์ด๋ค์ ์ฌ์ฉํด ์ํ๋ ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์๋์ง ์๊ณ ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ฒซ ๋ฒ์งธ ์นด๋ ๋ญ์น์ ์์๋๋ก ["i", "drink", "water"], ๋ ๋ฒ์งธ ์นด๋ ๋ญ์น์ ์์๋๋ก ["want", "to"]๊ฐ ์ ํ์์ ๋ ["i", "want", "to", "drink", "water"] ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค๋ ค๊ณ  ํ๋ค๋ฉด ์ฒซ ๋ฒ์งธ ์นด๋ ๋ญ์น์์ "i"๋ฅผ ์ฌ์ฉํ ํ ๋ ๋ฒ์งธ ์นด๋ ๋ญ์น์์ "want"์ "to"๋ฅผ ์ฌ์ฉํ๊ณ  ์ฒซ ๋ฒ์งธ ์นด๋๋ญ์น์ "drink"์ "water"๋ฅผ ์ฐจ๋ก๋๋ก ์ฌ์ฉํ๋ฉด ์ํ๋ ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์์ต๋๋ค.
๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด cards1, cards2์ ์ํ๋ ๋จ์ด ๋ฐฐ์ด goal์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, cards1๊ณผ cards2์ ์ ํ ๋จ์ด๋ค๋ก goal๋ฅผ ๋ง๋ค ์๋ค๋ฉด "Yes"๋ฅผ, ๋ง๋ค ์ ์๋ค๋ฉด "No"๋ฅผ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
cards1์ ๊ธธ์ด, cards2์ ๊ธธ์ด โค 10cards1[i]์ ๊ธธ์ด, cards2[i]์ ๊ธธ์ด โค 10cards1๊ณผ cards2์๋ ์๋ก ๋ค๋ฅธ ๋จ์ด๋ง ์กด์ฌํฉ๋๋ค.goal์ ๊ธธ์ด โค cards1์ ๊ธธ์ด + cards2์ ๊ธธ์ดgoal[i]์ ๊ธธ์ด โค 10goal์ ์์๋ cards1๊ณผ cards2์ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.cards1, cards2, goal์ ๋ฌธ์์ด๋ค์ ๋ชจ๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.| cards1 | cards2 | goal | result | 
|---|---|---|---|
| ["i", "drink", "water"]["want", "to"] ["i", "want", "to", "drink", "water"] | "Yes" | ["i", "water", "drink"]["want", "to"] | ["i", "want", "to", "drink", "water"] | 
function solution(cards1, cards2, goal) {
    // ์ด ๋ฐ๋ณตํ์
    const len = goal.length
    for(let i = 0 ; i < len ; i ++) {
        // ์ฒซ ๋ฒ์งธ ์นด๋๋ฅผ ์ฌ์ฉํ  ์ ์๋์ง ์ฒดํฌ
        if(cards1[0] === goal[0]) {
            cards1.shift()
            goal.shift()
        } else if(cards2[0] === goal[0]) {
            cards2.shift()
            goal.shift()
        } else {
            return "No"
        }
    }
    return "Yes"
}