벌집
15 June 2019
문제 : https://www.acmicpc.net/problem/2292
이번은 반복되는 규칙을 찾는 문제를 풀어보도록 하겠습니다.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int value = scanner.nextInt() - 1;
for (int i = 0; i < 1000000000; i++) {
value -= 6 * i;
if (value <= 0) {
System.out.println(i + 1);
break;
}
}
}
}
벌집의 규칙을 보면 1+ 6*(1+2+3+4+..)과 같이 각 레이어의 마지막 수가 증가하는 규칙을 찾을 수 있습니다.따라서, 입력에서 1을 뺀 후, 해당 값이 6*(x)에서 x가 1부터 차츰 증가하는 몇번째 수까지의 합인지를 찾으면 몇번재 레이어인지 판단할 수 있습니다.
1 자체도 값을 1로 가지므로 구한 수에서 1을 더해 출력해줍니다.