๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/์ธํ”„๋Ÿฐ(inflearn)

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ] section06 - 3 - ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ(์นด์นด์˜ค ๊ธฐ์ถœ)

by YWTechIT 2021. 9. 1.
728x90

๐Ÿ“ section06 - 3 - ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ(์นด์นด์˜ค ๊ธฐ์ถœ)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ๋„ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋‹ค. ์˜ˆ์ „์— ํ•œ์ฐฝ python์œผ๋กœ ํ’€๋•Œ๋Š” ๋๊นŒ์ง€ ํ’€์ง€ ๋ชปํ–ˆ๋Š”๋ฐ ์ง€๊ธˆ ์™€์„œ JS๋กœ ํ’€์–ด๋ณด๋‹ˆ๊นŒ ์ •๋‹ต ํŒ์ •์„ ๋ฐ›์•˜๋‹ค. ์™œ ๋ชป ํ’€์—ˆ๋ƒ๋ฉด ์ง‘๊ฒŒ๊ฐ€ ์œ„์—์„œ๋ถ€ํ„ฐ ๋‚ด๋ ค์˜ฌ ๋•Œ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์—์„œ arr[row][column]๊ฐ€ ์•„๋‹ˆ๋ผ arr[column][row]๋กœ ๋†“๊ณ  ํ’€์—ˆ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์™œ ๊ทธ๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋Š”์ง€ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ ๋๊ณ , ์ง‘๊ฒŒ๋กœ ์ธํ˜•์„ ๋ฝ‘๊ณ  ๋‚œ ์ดํ›„์— ํ•ด๋‹น ๊ฐ’์„ 0์œผ๋กœ ๋ฐ”๊ฟ”์ค˜์•ผ ๊ฐ™์€ `column`์—  ์ง‘๊ฒŒ๊ฐ€ ๋‚ด๋ ค์˜ค๋ฉด ๋‹ค์Œ ์ธํ˜•์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๊ณผ์ •์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์—ˆ๋‹ค. ํ’€์ด ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

  1. move๋Š” ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ฑด๋“œ๋ ค์•ผํ•˜๋ฏ€๋กœ ๊ฐ๊ฐ 1์”ฉ ๋นผ์ฃผ๊ณ  ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค.
  2. ์ง‘๊ฒŒ๊ฐ€ ๋‚ด๋ ค์˜ค๋Š” column์— ๊ฐ’์ด ์žˆ์œผ๋ฉด ์ธํ˜•์„ ๋ฝ‘์•„ basket์œผ๋กœ ์˜ฎ๊ธด๋‹ค. ๋งŒ์•ฝ, ํ˜„์žฌ ์ง‘๊ฒŒ์˜ ์ธํ˜•๊ณผ basket ๋งˆ์ง€๋ง‰ ์ธํ˜•์ด ๊ฐ™์œผ๋ฉด ์—†์• ์ฃผ๊ณ  cnt+=2๋ฅผ ํ•ด์ค€๋‹ค.
  3. ํ˜„์žฌ ์ง‘๊ฒŒ๊ฐ€ ์ง‘๊ณ  ์žˆ๋Š” ์ธํ˜•๊ณผ basket[-1]์ด ๋‹ค๋ฅด๋ฉด basket์— ๋„ฃ์–ด์ฃผ๊ณ , ์ง‘๊ฒŒ๋ฅผ ์ง‘์€ ์œ„์น˜๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
  4. ์ธํ˜•์„ ๋ฝ‘์•˜์œผ๋ฉด ํ˜„์žฌ 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;
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€