728x90
๋ฐ์ํ
๐ 03 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ(์นด์นด์ค ๊ธฐ์ถ)
์ฒ์ ์ ๋ ฅ ๊ฐ์ ๋ํ ์ดํด๋ฅผ ์๋ชปํ์ฌ ํ์ด๊ฐ ์๋ฒฝํ์ง ์์๋ค..๐ ๋ค์์ 2์ฐจ์ ๋ฐฐ์ด ๋ฌธ์ ๊ฐ ๋์ค๋ ๊ฒฝ์ฐ row, column์ ๋ํ ์ธ์์ ์ ๋๋กํ ํ ์ฝ๋๋ฅผ ์ง๋ฉด ์ด๋ฌํ ์ค์๋ ๋ง์ ์ ์์ ๊ฒ ๊ฐ๋ค. ์ง๊ฒ๋ก ์ธํ์ ๋ฝ๊ณ ๋ ์ดํ์ ํด๋น ๊ฐ์ 0(๋น ์นธ์ ์๋ฏธ)์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ๋ ์์ด์๋ ์๋๋ค. ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
ํ์ด ๋ฐฉ๋ฒ
- moves ๋ฐฐ์ด์ ์ฐจ๋ก๋๋ก ๋๋ฉฐ ์ง๊ฒ๊ฐ ์์นํด์ผ ํ ๊ณณ(pos)์ ์ฐพ๋๋ค.
- ์ง๊ฒ๊ฐ ๋ด๋ ค์ค๋ column์ 0(๋น ์นธ)์ด ์๋ ๊ฐ์ด ์๋ค๋ฉด ์ธํ์ ๋ฝ๊ณ (tmp) ์ธํ์ด ์๋ ์๋ฆฌ์ ๊ฐ์ 0์ผ๋ก ๋ฐ๊ฟ์ค๋ค.
- ํ์ฌ ์ง๊ฒ์ ๊ฐ(tmp)๊ณผ ๋ฐ๊ตฌ๋ ๋ง์ง๋ง ๊ฐ์ด ๊ฐ๋ค๋ฉด pop() ํจ์๋ฅผ ์ด์ฉํด ๋ฐ๊ตฌ๋์์ ๊ฐ์ ๊บผ๋ธ ํ answer += 2๋ฅผ ํด์ค๋ค.
- ๊ฐ์ง ์๋ค๋ฉด ํ์ฌ ์ง๊ฒ์ ๊ฐ์ push() ํจ์๋ฅผ ์ด์ฉํด ๋ฐ๊ตฌ๋์ ๋ฃ์ด์ค๋ค.
- for ๋ฌธ์ ๋น ์ ธ๋์ ์ง๊ฒ๊ฐ ๋ค์์ ์์นํด์ผ ํ ๊ณณ(pos)๋ฅผ ์ฐพ๋๋ค.
๐ ํ์ด
function solution(board, moves) {
let answer = 0;
let stack = [];
moves.forEach((pos) => {
let index = stack.length - 1;
for (let i = 0; i < board.length; i++) {
if (board[i][pos - 1] !== 0) {
let tmp = board[i][pos - 1];
board[i][pos - 1] = 0;
if (tmp === stack[index]) {
stack.pop();
answer += 2;
} else {
stack.push(tmp);
}
break;
}
}
});
return answer;
}
let a = [
[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 b = [1, 5, 3, 5, 1, 2, 1, 4];
console.log(solution(a, b));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 6] 05 - ์ ๋ง๋๊ธฐ (0) | 2022.09.27 |
---|---|
[JavaScript/section 6] 04 - ํ์์ ์ฐ์ฐ(postfix) (0) | 2022.09.26 |
[JavaScript/section 6] 02 - ๊ดํธ๋ฌธ์์ ๊ฑฐ (0) | 2022.09.23 |
[JavaScript/section 6] 01 - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.09.23 |
[JavaScript/section 5] 08 - ๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2022.09.22 |