첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
입력값은 벌집의 누적 갯수를 의미하며, 최단거리는 라운드와 동일한 값이다.
계차수열의 일반항을 사용하여 값이 최단거리를 출력하였다.
round는 1로 초기화, no.2 ~ ... 의 수열의 일반항.
bn = 6n
Sbn = n(6 + 6*n) / 2 = 3n(n+1)
Sbn-1 = 3(n-1)(n-1 +1) = 3n(n-1)
an = 2(a1) + Sn-1
= 2 + 3n(n-1)
따라서, 일반항은 '2 + 3n(n-1)'
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int round = 1;
while((3*round*(round-1))+2 <= N){
n++;
}
System.out.println(n);
br.close();
}
}