Algorithm/Algorithm 문제

[백준] 2292번 벌집 [Java]

lala9663 2022. 10. 18. 01:17

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


  • 문제

    N = 1 일 때는 1개의 방
    N = 2 일 때는 2개의 방
    N = 8 일 때는 3개의 방

    이런 식으로 N 번까지 갈 때 최소 개의 방으로 방문하는 문제이다. 방의 개수는 6개씩 늘어나는 것을 알 수 있다.

  • 알고리즘 [풀이 방법]

import java.util.Scanner;

//벌집
public class B2292 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int count = 1;
        int range = 2;

        if(N == 1){
            System.out.println(1);
        }else {
            while (range<=N){
                range = range + (6 * count);
                count++;
            }
            System.out.println(count);
        }

    }
}

N이 1일 때는 바로 1을 출력하게 만들고,
그 외에는 range가 N을 넘기 직전까지 최솟값 range를 계속 증가시켜주는 것이다.
그리고 count를 증가시키면 된다.