중앙의 방 1을 둘러싸고 있는 방들 중, 가장 큰 수대로 나열하면
1 7 19 37 61
이 수들의 규칙은
1 (+6) 7 (+12) 19 (+18) 37 (+24) 61
6의 배수로 증가한다.
i는 출력값으로 초기값을 1로 설정하고, i가 증가하면서 증가폭을 설정해준다.
예를 들어 13번방의 값을 구한다면 i가 증가하면서 while을 돌다가, 13보다 결과값이 커진다면 while을 빠져나온다.
이때 i가 원하는 출력값이 된다.
1을 넣으면 결과값이 2가 나오기 때문에 1번방일때 출력값이 1이라는 것은 따로 예외처리한다.
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int result = 1;
int i = 1;
if (num==1) {
System.out.println("1");
}
else {
while(true) {
result = result+(6*i);
i++;
if (result>=num) break;
}
System.out.println(i);
}
}
}