function solution(board, moves) {
let answer = 0;
const n = board.length;
let basket = [];
let moveToIndex = moves.map((move) => move - 1);
for (let move of moveToIndex) {
for (let i = 0; i < n; i++) {
if (board[i][move]) {
if (basket[basket.length - 1] === board[i][move]) {
basket.pop();
board[i][move] = 0;
answer += 2;
break;
} else {
basket.push(board[i][move]);
board[i][move] = 0;
break;
}
}
}
}
return answer;
}
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์
[[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]] [1,5,3,5,1,2,1,4] 4
programmers.co.kr
- ํฌ๋ ์ธ์ด ์ ํํ ํต๋ก ๋ฒํธ๋ฅผ ๋ฐฐ์ด index๋ก ๋ฐ๊ฟ์ค๋ค. ex) 1 -> 0
- ๊ฐ๊ฐ์ ํต๋ก๋ฒํธ ์ธ๋ฑ์ค(move)์ ๋ํด board๋ฐฐ์ด์ 0๋ฒ์งธ ์ธ๋ฑ์ค(๊ฐ์ฅ ์์ค)๋ถํฐ ๊ฐ์ ํ์ธ
- ๊ทธ ๊ฐ์ด 0์ด ์๋ ๊ฐ(true์ธ 0๋ณด๋ค ํฐ ์ซ์)์ผ ๋, basket(๋ฝํ ์ธํ๋ค์ ๋ชจ์๋๋)์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ ๊ฐ์ด ํ์ฌ ๋ฝ์ ๊ฐ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๋๋ ์ ์ฒ๋ฆฌํด์ค๋ค. (๊ฐ์ ๋๋ basket.pop()์ผ๋ก ๋๊ฐ์ ์ ๊ฑฐํ๊ณ ๋ฝ์ ๊ฐ๋ basket์ ๋ฃ์ง ์๋๋ค. ๊ฐ์ ๋ ์ซ์๊ฐ ๋ง๋์ ์ฌ๋ผ์ง๋ ํจ๊ณผ -> answer += 2 ์ฒ๋ฆฌ)
์ฒ์์ ์ผ๋จ ๋ฝ์ ์ธํ๋ค์ ๋ํ ๋ฐฐ์ด์ ๋ง๋ค๊ณ ๊ทธ ๋ฐฐ์ด์์ ์๋ก ๋ถ์ด์์ ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ๋ฅผ ํ์ธํ๋ ค ํ๋ค.
๋ฝ์ ์ธํ๋ค ๋ฐฐ์ด์ ๋ง๋ ํ, ๊ทธ ๋ฐฐ์ด์์ ๊ฐ์ ์ธํ๋ค์ผ ๋ ์์ ๋ ๋ถ๋ถ์ด ์ฝ์ง ์์๋ค.
์๋ฅผ ๋ค์ด [2, 1, 3, 3, 1]์ด๋ ๋ฐฐ์ด์ด ์๋ค๋ฉด 3, 3์ด ์ฌ๋ผ์ง๊ณ [2, 1, 1]์ด ๋๊ธฐ ๋๋ฌธ์ ๋ค์ [2]๋ง ๋จ๊ฒ ๋๋๋ฐ ์ด ๋ถ๋ถ์ ์ฌ๊ท๋ก ํด๊ฒฐํ์ง๋ง, ์๊ฐ์ด๊ณผ๊ฐ ๋์๋ค.
ํด์ ์์ ๊ฐ์ด ์์ basket์ ๋ด์ ๋๋ถํฐ ๋ฃ์ ๊ฐ๊ณผ basket์ ๊ฐ์ฅ ์ต๊ทผ๊ฐ์ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ด ๋ ํจ๊ณผ์ ์ด๋ค.
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] 2021์นด์นด์ค - ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2022.07.01 |
---|---|
[JS] 2020์นด์นด์ค - ํคํจ๋ ๋๋ฅด๊ธฐ (0) | 2022.07.01 |
[JS] ์์ ๋ง๋ค๊ธฐ (0) | 2022.06.30 |
[JS] ๊ทธ๋ฆฌ๋ - ์ฒด์ก๋ณต (0) | 2022.06.28 |
[JS] 2019์นด์นด์ค - ์คํจ์จ (0) | 2022.06.28 |