1780. 종이의 개수 - node.js / javascript

윤상준·2022년 4월 21일
0

BOJ - node.js / javascript

목록 보기
16/55
post-thumbnail

문제

내 코드

const fs = require("fs");
const input = fs.readFileSync("./dev/stdin").toString().trim().split("\n");

const N = Number(input[0]);
const arr = input.slice(1).map((v) => v.split(" ").map(Number));

let answer = [0, 0, 0];

function recursion(y, x, n) {
  let target = arr[y][x];
  let flag = true;

  for (let i = y; i < y + n; i++) {
    for (let j = x; j < x + n; j++) {
      if (arr[i][j] !== target) {
        flag = false;
        break;
      }
    }
    if (!flag) break;
  }

  if (flag) {
    answer[target + 1]++;
  } else {
    recursion(y, x, n / 3);
    recursion(y, x + n / 3, n / 3);
    recursion(y, x + (n / 3) * 2, n / 3);
    recursion(y + n / 3, x, n / 3);
    recursion(y + n / 3, x + n / 3, n / 3);
    recursion(y + n / 3, x + (n / 3) * 2, n / 3);
    recursion(y + (n / 3) * 2, x, n / 3);
    recursion(y + (n / 3) * 2, x + n / 3, n / 3);
    recursion(y + (n / 3) * 2, x + (n / 3) * 2, n / 3);
  }
}

recursion(0, 0, N);

console.log(answer.join("\n"));

깃허브 링크

https://github.com/highjoon/Algorithm/blob/master/BOJ/1780.js

profile
하고싶은건 많은데 시간이 없다!

0개의 댓글