Notice
Recent Posts
Recent Comments
Link
ยซ   2024/09   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

Lennon FE

[๋ฐฑ์ค€ 14503๋ฒˆ] ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs) ๋ณธ๋ฌธ

๐Ÿ”ฅ Algorithm/Baekjoon

[๋ฐฑ์ค€ 14503๋ฒˆ] ๋กœ๋ด‡์ฒญ์†Œ๊ธฐ - ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(nodejs)

Lennon 2022. 4. 30. 14:42
728x90
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/14503

 

14503๋ฒˆ: ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ

๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ฒญ์†Œํ•˜๋Š” ์˜์—ญ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋กœ๋ด‡ ์ฒญ์†Œ๊ธฐ๊ฐ€ ์žˆ๋Š” ์žฅ์†Œ๋Š” N×M ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, 1×1ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด

www.acmicpc.net

 

const { SocketAddress } = require('net');
const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
let input = [];
rl.on('line', function (line) {
  input.push(line);
  if (input.length === +input[0].split(' ')[0] + 2) {
    input = input.map((v) => v.split(' ').map(Number));
    rl.close();
  }
}).on('close', function () {
  const [x, y] = input.shift().map((v) => +v + 1);
  let [r, c, d] = input.shift().map(Number);
  let answer = 1;
  let count = 0;

  input[r][c] = 'v';

  while (r > 0 && c > 0 && r <= x && c <= y) {
    if (count === 4) {
      if (d === 0) {
        if (input[r + 1][c] === 1) {
          break;
        }
        r++;
      } else if (d === 1) {
        if (input[r][c - 1] === 1) {
          break;
        }
        c--;
      } else if (d === 2) {
        if (input[r - 1][c] === 1) {
          break;
        }
        r--;
      } else if (d === 3) {
        if (input[r][c + 1] === 1) {
          break;
        }
        c++;
      }

      count = 0;
    }
    if (d === 0) {
      if (input[r][c - 1] !== 0) {
        d = 3;
        count++;
      } else {
        d = 3;
        c--;
        input[r][c] = ++answer;
        count = 0;
      }
    } else if (d === 1) {
      if (input[r - 1][c] !== 0) {
        d = 0;
        count++;
      } else {
        d = 0;
        r--;
        input[r][c] = ++answer;
        count = 0;
      }
    } else if (d === 2) {
      if (input[r][c + 1] !== 0) {
        d = 1;
        count++;
      } else {
        d = 1;
        c++;
        input[r][c] = ++answer;
        count = 0;
      }
    } else if (d === 3) {
      if (input[r + 1][c] !== 0) {
        d = 2;
        count++;
      } else {
        d = 2;
        r++;
        input[r][c] = ++answer;
        count = 0;
      }
    }
  }

  console.log(answer);
});

๋™์„œ๋‚จ๋ถ์„ ๋‚˜๋ˆ ์„œ ๊ทœ์น™์— ๋งž๊ฒŒ ์™ผ์ชฝ์œผ๋กœ ๋Œ๋ฉด์„œ ์ฒญ์†Œํ•˜๋ฉด ๋œ๋‹ค!

count(ํšŒ์ „ ์ˆ˜)๊ฐ€ 4์ด๊ณ  ๋’ค์— ๋ฒฝ์ด ์žˆ์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ณ , ๋ฒฝ์ด ์•„๋‹ˆ๋ฉด ๋’ค๋กœ ํ•œ ์นธ ๊ฐ€์ฃผ๋ฉด ๋œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
Comments