유물/└ 백준

<백준(node.js)> 2292번: 벌집

디벅잉 2022. 2. 11. 21:03
728x90

 

🤖

 

문제

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

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌

www.acmicpc.net

 

풀이

const fs = require("fs");
const INPUT_NUMBER = +fs.readFileSync("/dev/stdin").toString().trim();

function countRoomNum(num) {
  let maxNum = 1;
  for (let i = 0; ; i++) {
    maxNum += 6 * i;
    if (maxNum >= num) {
      return i + 1;
    }
  }
}

console.log(countRoomNum(INPUT_NUMBER));

1. (line 4~12) 벌집 중앙에서 방까지 갯수를 세는 함수를 정의합니다. 벌집 사이클의 최댓값들을 모으면 계차수열이 등차수열을 이루는 특징이 있기 때문에 이를 근거로 판단합니다. (1, 7, 19, 37, 61...의 계차수열 => 6, 12, 18, 24...)

 

728x90