본문 바로가기
코딩테스트 준비/백준

[백준] 2292번 - 벌집 [Java]

by mwzz6 2025. 1. 6.

https://www.acmicpc.net/problem/2292

 

[백준] 2292번 - 벌집 [Java]
[백준] 2292번 - 벌집 [Java]


1.  아이디어

 

벌집의 번호와 이동에 필요한 방의 수를 점화식을 세워서 해결할 수 있다.


2. 문제풀이

 

1칸 이동해서 갈 수 있는 최대 번호는 1번, 2칸 이동해서 갈 수 있는 최대 번호는 7번, 3칸 이동해서 갈 수 있는 최대 번호는 19번, 이렇게 규칙성을 찾다보면 N칸 이동해서 갈 수 있는 최대 번호를 An 이라 할 때 An = 3 * N * (N - 1) + 1이 됨을 알 수 있다.

무한 루프를 활용해서 N의 값을 찾는 방식으로 구현했다.


3. 코드

 

import java.io.*;

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 n = 1;
        while ((3 * n * (n - 1) + 1) < N) {
            n++;
        }

        System.out.println(n);
    }
}

4. 후기