

이번 문제도 규칙을 찾는 문제이다. 육각형 형태로 방 번호가 확장되며, 중심의 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);
}
}
}

이번 문제는 중앙 이동 알고리즘을 풀고 난 이후라서, 문제 설명뿐만 아니라 그림을 통해 규칙을 더 빠르게 파악할 수 있었다. 하지만 아직 빠르게 규칙을 찾아내는 데에는 부족함을 느꼈다.
아직은 부족하지만, 다양한 문제를 풀며 문제를 바라보는 시각을 넓혀간다면 더 잘 해결할 수 있을 것이라 생각한다.
'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 수학1] 1193 분수 찾기 (0) | 2026.03.25 |
|---|---|
| 백준 - [단계별로 풀어보기 수학1] 2869 달팽이는 올라가고 싶다 (0) | 2026.03.24 |
| 백준 - [단계별로 풀어보기 수학1] 2903 중앙 이동 알고리즘 (0) | 2026.03.23 |
| 백준 - [단계별로 풀어보기 수학1] 2720 세탁소 사장 동혁 (0) | 2026.03.22 |
| 백준 - [단계별로 풀어보기 수학1] 11005 진법 변환2 (0) | 2026.03.21 |