벌집

문제

언어

  • JavaScript

문제 풀이 step 1

  • 처음 문제를 봤을 때 어떻게 구해야 할지 너무 큰 고민이 되었습니다. 그 고민은 어떻게 경로를 결정해야 할까 라는 의문으로부터 나오는 것이었습니다.
  • 하지만 문제에서 원하는 답은 경로가 아닌 목적지까지 가는 데 지나는 방의 개수였습니다.
  • 즉, 중간 과정에서 어떻게 목적지에 가는지는 중요하지 않습니다.
  • 그러므로 저희는 그저 벌집을 1번 방에서 한 단계씩 키워가면서 한 단계마다 커버하는 범위 안에 주어진 N이 있는지 검사만 해주면 됩니다.

소스 코드

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

const solution = (input) => {
	const N = parseInt(input[0]);

	let ans = 1;
	let before = 1;
	let end = 1;

	while (!(before <= N && N <= end)) {
		before = end + 1;
		end = before + ans * 6 - 1;
		ans++;
	}

	return ans;
};

console.log(solution(input));