#include <stdio.h>
int main(void) {
int n, i, max;
scanf("%d", &n);
for (i = 1, max = 1; n > max; i++)
max = max + (6 * i);
printf("%d", i);
return 0;
}
최소 개수로 방을 지나기 위해서는 해당 방이 속해있는 겹이 몇 겹인지를 찾아야 함 (예시를 들어 3은 두 번째 겹에 속하며 1을 기준으로 두 칸 움직여 최소 개수로 접근할 수 있음)
입력 받은 수가 속한 겹은 겹의 최댓값이 입력받은 수를 넘은 시점의 인덱스임. 겹의 최댓값이 입력받은 수를 넘어섰다는 것은 해당 최대값이 입력받은 수가 속한 겹의 최댓값이라는 것을 의미함
한 겹의 최댓값(가장 큰 번호)은 이전 겹의 최댓값에 현재 겹의 방의 수를 더하면 구할 수 있음
겹에 따른 방의 수는 6의 배수 형태로 점점 늘어남 (6x1, 6x2...)