코딩 테스트/백준

백준 - [단계별로 풀어보기 수학1] 2292 벌집

devrabbit22 2026. 3. 23. 05:03

이번 문제도 규칙을 찾는 문제이다. 육각형 형태로 방 번호가 확장되며, 중심의 1번 방을 기준으로 주변에 6개의 방이 생성된다.
이후 바깥으로 갈수록 12개, 18개와 같이 6의 배수만큼 방의 개수가 증가한다는 규칙을 확인할 수 있다.
따라서 6의 배수로 증가하는 층을 기준으로 범위를 나누고, 입력한 방 번호가 어느 층에 포함되는지 확인하는 문제이다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    internal class math1
    {
        static void Main(string[] args)
        {
            //백준 2292 벌집
            int N = int.Parse(Console.ReadLine());
            int layer = 1;   // 현재 층 (1층은 방 번호 1)
            int roomCnt = 1; // 현재 층까지의 마지막 방 번호

            //N이 현재 층 범위 안에 없으면 계속 확장
            while (N > roomCnt)
            {
                roomCnt += 6 * layer;
                layer++;
            }
            Console.WriteLine(layer);
        }
    }
}

출력 결과

이번 문제는 중앙 이동 알고리즘을 풀고 난 이후라서, 문제 설명뿐만 아니라 그림을 통해 규칙을 더 빠르게 파악할 수 있었다. 하지만 아직 빠르게 규칙을 찾아내는 데에는 부족함을 느꼈다.
아직은 부족하지만, 다양한 문제를 풀며 문제를 바라보는 시각을 넓혀간다면 더 잘 해결할 수 있을 것이라 생각한다.