728x90
๐ section06 - 3 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ(์นด์นด์ค ๊ธฐ์ถ)
ํ๋ก๊ทธ๋๋จธ์ค์์๋ ํ ์ ์๋ ๋ฌธ์ ๋ค. ์์ ์ ํ์ฐฝ python
์ผ๋ก ํ๋๋ ๋๊น์ง ํ์ง ๋ชปํ๋๋ฐ ์ง๊ธ ์์ JS
๋ก ํ์ด๋ณด๋๊น ์ ๋ต ํ์ ์ ๋ฐ์๋ค. ์ ๋ชป ํ์๋๋ฉด ์ง๊ฒ๊ฐ ์์์๋ถํฐ ๋ด๋ ค์ฌ ๋๋ 2์ฐจ์ ๋ฐฐ์ด์์ arr[row][column]
๊ฐ ์๋๋ผ arr[column][row]
๋ก ๋๊ณ ํ์์ด์ผ ํ๋๋ฐ, ์ ๊ทธ๋ ๊ฒ ์ค์ ํ๋์ง ์ ์ดํด๊ฐ ์ ๋๊ณ , ์ง๊ฒ๋ก ์ธํ์ ๋ฝ๊ณ ๋ ์ดํ์ ํด๋น ๊ฐ์ 0์ผ๋ก ๋ฐ๊ฟ์ค์ผ ๊ฐ์ `column`์ ์ง๊ฒ๊ฐ ๋ด๋ ค์ค๋ฉด ๋ค์ ์ธํ์ ๋ฝ์ ์ ์๋๋ฐ ์ด ๊ณผ์ ์ ์ดํดํ์ง ๋ชปํ์๋ค. ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
move
๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ๊ฑด๋๋ ค์ผํ๋ฏ๋ก ๊ฐ๊ฐ 1์ฉ ๋นผ์ฃผ๊ณ ๊ณ์ฐํด์ผ ํ๋ค.- ์ง๊ฒ๊ฐ ๋ด๋ ค์ค๋
column
์ ๊ฐ์ด ์์ผ๋ฉด ์ธํ์ ๋ฝ์basket
์ผ๋ก ์ฎ๊ธด๋ค. ๋ง์ฝ, ํ์ฌ ์ง๊ฒ์ ์ธํ๊ณผbasket
๋ง์ง๋ง ์ธํ์ด ๊ฐ์ผ๋ฉด ์์ ์ฃผ๊ณcnt+=2
๋ฅผ ํด์ค๋ค. - ํ์ฌ ์ง๊ฒ๊ฐ ์ง๊ณ ์๋ ์ธํ๊ณผ
basket[-1]
์ด ๋ค๋ฅด๋ฉดbasket
์ ๋ฃ์ด์ฃผ๊ณ , ์ง๊ฒ๋ฅผ ์ง์ ์์น๋ฅผ 0์ผ๋ก ๋ฐ๊ฟ์ค๋ค. - ์ธํ์ ๋ฝ์์ผ๋ฉด ํ์ฌ
move
๋ ์ข ๋ฃํ๊ณ ๋ค์move
๋ก ๋์ด๊ฐ๋ค.
728x90
let boards = [
[0, 0, 0, 0, 0],
[0, 0, 1, 0, 3],
[0, 2, 5, 0, 1],
[4, 2, 4, 4, 2],
[3, 5, 1, 3, 1],
];
let moves = [1, 5, 3, 5, 1, 2, 1, 4];
console.log(solution(boards, moves));
function solution(boards, moves) {
let n = boards.length;
let basket = [];
let cnt = 0;
for (let idx of moves) {
let move = idx - 1;
for (let i = 0; i < n; i++) {
if (boards[i][move]) {
if (basket[basket.length - 1] === boards[i][move]) basket.pop(), cnt += 2;
else basket.push(boards[i][move]);
boards[i][move] = 0;
break;
}
}
}
return cnt;
}
๋ฐ์ํ
๋๊ธ