const input = require("fs").readFileSync("/dev/stdin");
honeyHouse(input);
function honeyHouse(number){
number;
let block = 1;
let result = 1;
// 27
while(true){
if(number <= block){
break;
}
block = block + result * 6;
// 1 = 1 + 6 => 7
// 7 = 7 + 12 => 19
// 19 = 19 + 18 => 37
result++;
// 2
// 3
// 4
}
console.log(result);
}
규칙을 우선 파악하는게 중요하다고 생각합니다. 1을 기준으로 + 6까지는 1칸을 이동해 이동할 수 있습니다. 문제에서 알 수 있듯 1을 기준으로 이동하기 때문에 result 값을 0이 아닌 1로 설정했습니다. while문을 통해 입력받은 값이 block과 작거나, 같아졌을 때(크면 X) 중단하고 block값을 반복문이 돌 때 block + result * 6을 통해서 증가시켰습니다. 이후 result++을 통해 이동한 칸을 파악합니다. 주석을 보면 2~7까지는 1칸, 8~19까지는 2칸 이때 result값은 2, 3 증가를 통해 하나씩 파악해갑니다. 그럼 원하는 결과값을 얻을 수 있습니다.