공log/[P&B]

[P&B] #68 BAEKJOON 2292

ming_OoO 2023. 9. 18. 21:52
728x90

백준 2292번 벌집

문제 설명

육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.

 

입력

첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.

 

출력

입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.

 

나의 문제 풀이 코드

import java.io.*;

public class bj2292 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt(br.readLine()) - 1;
        int count = 0;
        if (N == 0)
            count = 1;
        else {
            while (N > 0) {
                N = N - (6 * count);
                count++;
            }
        }
        bw.write(String.valueOf(count));
        bw.flush();
    }
}

 

문제 풀이 코멘트

사실 이 글을 쓰는 시점에 N값의 범위를 보고 당황하긴했지만 일단 맞추었으니 마저 글을 쓴다..

벌집의 그림을 보며 각 라인(동그랗게 이어지는 벌집)의 마지막 숫자를 보면 1, 7, 19, 37, 61 이다.

그리고 그 숫자들을 각각 왼쪽에 있는 숫자로 빼면 1, 6, 12, 18, 24가 나온다.

즉 6의 배수로 벌집이 형성된다. 

이전 포스트와 마찬가지로 규칙만 찾을 수 있다면 쉽게 풀 수 있는 문제였다.

728x90

'공log > [P&B]' 카테고리의 다른 글

[P&B] #70 BAEKJOON 11653  (0) 2023.09.19
[P&B] #69 BAEKJOON 1193  (0) 2023.09.18
[P&B] #67 BAEKJOON 2903  (0) 2023.09.18
[P&B] #66 BAEKJOON 2869  (0) 2023.09.18
[P&B] #65 BAEKJOON 11005  (0) 2023.09.18