๐ ๋ฌธ์
์ฝ๋๋ ์์ด ๋จ์ด๊ฐ ์ ํ ์นด๋ ๋ญ์น ๋ ๊ฐ๋ฅผ ์ ๋ฌผ๋ก ๋ฐ์์ต๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ์นด๋์ ์ ํ ๋จ์ด๋ค์ ์ฌ์ฉํด ์ํ๋ ์์์ ๋จ์ด ๋ฐฐ์ด์ ๋ง๋ค ์ ์๋์ง ์๊ณ ์ถ์ต๋๋ค.
์ํ๋ ์นด๋ ๋ญ์น์์ ์นด๋๋ฅผ ์์๋๋ก ํ ์ฅ์ฉ ์ฌ์ฉํฉ๋๋ค.
ํ ๋ฒ ์ฌ์ฉํ ์นด๋๋ ๋ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์นด๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ค์ ์นด๋๋ก ๋์ด๊ฐ ์ ์์ต๋๋ค.
๊ธฐ์กด์ ์ฃผ์ด์ง ์นด๋ ๋ญ์น์ ๋จ์ด ์์๋ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์ฒซ ๋ฒ์งธ ์นด๋ ๋ญ์น์ ์์๋๋ก ["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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
1 ≤ cards1์ ๊ธธ์ด, cards2์ ๊ธธ์ด ≤ 10
1 ≤ cards1[i]์ ๊ธธ์ด, cards2[i]์ ๊ธธ์ด ≤ 10
cards1๊ณผ cards2์๋ ์๋ก ๋ค๋ฅธ ๋จ์ด๋ง ์กด์ฌํฉ๋๋ค.
2 ≤ goal์ ๊ธธ์ด ≤ cards1์ ๊ธธ์ด + cards2์ ๊ธธ์ด
1 ≤ goal[i]์ ๊ธธ์ด ≤ 10
goal์ ์์๋ cards1๊ณผ cards2์ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
cards1, cards2, goal์ ๋ฌธ์์ด๋ค์ ๋ชจ๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
["i", "drink", "water"] | ["want", "to"] | ["i", "want", "to", "drink", "water"] | "Yes" |
["i", "water", "drink"] | ["want", "to"] | ["i", "want", "to", "drink", "water"] | "No" |
โ๏ธ ํ์ด
๋ ๊ฐ์ ์คํ ์ ์ฌ์ฉํ๋ ๋๋์ผ๋ก ํ์ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ์ฒ์์๋ shift๋ณด๋ค pop์ ์๊ฐ๋ณต์ก๋๊ฐ ํจ์ฌ ๋ฎ๊ธฐ ๋๋ฌธ์ ๊ฐ card ๋ฐฐ์ด์ ๋ค์ง์์ pop์ํค๋ ค๊ณ ํ์์ผ๋ card ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ ์ต๋ 10์ด๊ธฐ ๋๋ฌธ์ shift๋ฅผ ๊ทธ๋ฅ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค.
goal ๋ฐฐ์ด์ ๋๋ฉด์ ํ์ฌ ํ์ํ ๋จ์ด๊ฐ ๊ฐ๋ฅํ์ง๋ฅผ ํ์ธํ๋ค. ์ด๋ cards1 ๋๋ cards2์ ์ฒซ ๋ฒ์งธ ์์์ ํ์ฌ ํ์ํ ๋จ์ด์ ์ผ์นํ๋์ง๋ฅผ ํ์ธํ๊ณ ์๋ฌ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ฐ card ๋ฐฐ์ด์ ์์๊ฐ ์๋์ง๋ ํ์ธํ๋ค. ๋ง์ฝ ๋ ์ค ํ๋๋ผ๋ ๋จ์ด๊ฐ ์กด์ฌํ๋ฉด shiftํ๊ณ contuinue ์์ผ์คฌ๋ค. ์กฐ๊ฑด์ ๋ถํฉํ์ง ์์ผ๋ฉด ๋ฐ๋ก "No"๋ฅผ ๋ฐํํด์คฌ๋ค. ๋ฐ๋ณต๋ฌธ์ด ๋ชจ๋ ๋๊ณ ๋๋ฉด ํ์ํ ๋จ์ด๋ฅผ ์์๋๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์๋ฏธ์ด๋ฏ๋ก "Yes"๋ฅผ ๋ฐํํด์คฌ๋ค.
โจ๏ธ ์ฝ๋
function solution(cards1, cards2, goal) {
for (const target of goal) {
if (cards1.length && cards1[0] === target) {
cards1.shift();
continue;
} else if (cards2.length && cards2[0] === target) {
cards2.shift();
continue;
}
return 'No';
}
return 'Yes';
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ์ถ์ต ์ ์ (0) | 2023.04.24 |
---|---|
[Algorithm] ์๋ฌผ์ ์ ์ด์ (0) | 2023.04.23 |
[Algorithm] ์ซ์ ์ง๊ฟ (0) | 2023.04.23 |
[Algorithm] ์น์์ด(2) (1) | 2023.04.22 |
[Algorithm] ๋ฌธ์์ด ๋๋๊ธฐ (0) | 2023.04.19 |