์ค๋์ ๊ฐ์์์ ๋ฐฐ์ด ๋๋ก
๋จผ์ ์ด๋ค๊ฒ ์ฃผ์ด์ก๊ณ , ์ด๋ค ๊ฑธ ๊ตฌํด์ผ ํ๋์ง ์ ๋ฆฌ๋ฅผ ๋จผ์ ํด๋๊ณ ,
๊ทธ ๋ค์์ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ตฌํด์ผ ํ๋์ง ์จ๋ดค๋ค.
์ด ๊ณผ์ ๋ ํ ์คํธ์ ์ผ๋ถ๋ผ๊ณ ์๊ฐํ๊ณ ์ฐ๋ ๋จ๊ณ๋ณ๋ก ์ฐจ๊ทผ์ฐจ๊ทผ ์ธ ์ ์์๋ค.
0. 2์ฐจ์ ๋ฐฐ์ด๊ณผ 1์ฐจ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๋ค. / return ํ๋ ๊ฑด count ๋ ์ซ์
1. 2์ฐจ์ ๋ฐฐ์ด์์ moves ๋ฐฐ์ด์ ํ ์ค ๊ฐ์ฅ ์์ ์๋ ์ ์ค 0 ์ด ์๋ ์ ๋ฅผ ์ฐพ๋๋ค.
2. ์์์ ๋ฐ๊ตฌ๋ array ๋ฅผ ๋ง๋ ๋ค.
3. 1๋ฒ์์ ์ฐพ์ 0์ด ์๋ ์๋ฅผ array ์ ๋ฃ๋๋ค.
4. ๋ฐ๊ตฌ๋์์ ๊ฐ์ ์2๊ฐ๊ฐ ์๋ค๋ฉด ์ ๊ฑฐํ๋ค.
5. ์ ๊ฑฐ ๋ ์ธํ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค. (์ ๊ฑฐ๋๋ ๊ณผ์ ์ด ๋ฐ๋ณต๋ ์ *2 ๋ฅผ ํด๋ ๋จ)
4๋ฒ์ ๋ฐ๋ก ์งํํ๋ ๊ฒ๋ณด๋ค 3๋ฒ์ ์งํํ๋ฉด์ ํ์ธํ๋ฉฐ ์งํํ๋๊ฒ ๋ ๊ฐํธํ ๊ฑฐ๋ ์๊ฐ์ด ๋ค์๋ค.
function solution(board, moves) {
const basket = [];
let count = 0;
moves.forEach(move => {
for (let i = 0; i < board.length; i++) {
if (board[i][move - 1] !== 0) {
if (basket[basket.length - 1] === board[i][move - 1]) {
count++;
basket.pop();
} else {
basket.push(board[i][move - 1]);
}
board[i][move - 1] = 0;
break;
}
}
});
return count * 2
}
moves ์ ์๋ค์ ๊ธฐ์ค์ผ๋ก board ์์ ์๋ฅผ ์ฐพ๋๋ค.
moves ์ ์์ธ move ๋ฅผ ๊ณ ์ ํด๋์ ์ํ์์
for ๋ฌธ์ ๋๋ ค 2์ฐจ์ ๋ฐฐ์ด์ธ board ๋ฅผ ํ์ํ๋ค.
0์ด ์๋ ์์ผ ๊ฒฝ์ฐ
- ๋ง์ฝ basket ์ ์๋ ๋ง์ง๋ง ์์ ๋ฐ๊ฒฌํ ์๊ฐ ๊ฐ๋ค๋ฉด, basket ์์ ๊ทธ ์๋ฅผ ์ ๊ฑฐํด์ฃผ๊ณ count ๋ฅผ +1 ํด์ค๋ค.
- ๋ง์ฝ basket ์ ์๋ ๋ง์ง๋ง ์์ ๋ฐ๊ฒฌํ ์๊ฐ ๋ค๋ฅด๋ค๋ฉด, basket ์ ์๋ฅผ ์ถ๊ฐํด์ค๋ค.
์ด์จ๋ 0์ด ์๋ ์๊ฐ ๋์๊ธฐ ๋๋ฌธ์ ๋ฝ๊ธฐ๊ฐ ์คํ๋๊ณ , board ์ ์๋ฆฌ์ 0์ ๋ฃ์ด์ค ๋ค, break ๋ก for ๋ฌธ์ ์ค๋จํ๋ค.
count ๋ ๊ฐ์ ์๋ฅผ ๋ง๋ ์ ๊ฑฐ๊ฐ ์คํ๋ ์์ด๊ธฐ ๋๋ฌธ์,
์ธํ์ ์๋ฅผ return ํ๊ธฐ ์ํด *2๋ฅผ ๊ณฑํ๋ค.
์ธํ์ 2๊ฐ๊ฐ ๋ง๋๋ฉด ๋ฌด์กฐ๊ฑด ์ฌ๋ผ์ง๊ธฐ ๋๋ฌธ์ 3์ฝค๋ณด ๋ฑ์ ๊ณ ๋ คํ ํ์๊ฐ ์๋ค.