목차
백준 단계별로 풀어보기
25.09.10
8단계: 수학 1
2292번: 벌집
문제 링크 : https://www.acmicpc.net/problem/2292
문제 풀이
>> 문제를 풀기 위해 알아야 할 개념
- 벌집 중앙에서부터의 거리가 멀수록 늘어나는 번호의 규칙
: 아래 사진을 보면 벌집 중앙에서부터 거리가 1칸 멀어지면 6개의 방이, 2칸 멀어지면 12개의 방이, 3칸 멀어지면 18개의 방이 늘어난다. 즉, 6의 배수로 방 개수가 더 늘어난다.
// 1 거리 0
// 2 ~ 7 --> 6개 거리 1
// 8 ~ 19 --> 12개 거리 2
// 20 ~ 37 --> 18개 거리 3

>> 풀이
- 방 번호를 입력받아 int 값으로 변환한다.
- 벌집 중앙으로부터의 거리와 늘어나는 방 번호를 담을 변수를 선언한다.
- 만약 입력값이 1이면 벌집 정중앙이므로 바로 1을 출력하고 끝낸다.
- while 반복문을 활용하여 현재 입력값이 1 이상이라면 입력값에 방 개수만큼 빼준 다음 다음 방 개수를 6개 늘리고 벌집 중앙으로부터의 거리를 1 올린다. --> 입력값에 방 개수만큼 뺀 값이 1보다 작거나 같다면 다음 칸으로 갈 수 없다는 뜻이 된다.
- 구한 벌집 중앙으로부터의 거리를 출력한다.
정답 코드
class Backjoon
{
static void Main(string[] args)
{
int num = int.Parse(Console.ReadLine());
int range = 1;
int count = 6;
if (num == 1)
{
Console.Write(range);
return;
}
while (num > 1)
{
num -= count;
count += 6;
range++;
}
Console.Write(range);
}
}'Development > Baekjoon' 카테고리의 다른 글
| [C#] 2869번: 달팽이는 올라가고 싶다 (0) | 2025.09.12 |
|---|---|
| [C#] 1193번: 분수찾기 (0) | 2025.09.11 |
| [C#] 2903번: 중앙 이동 알고리즘 (0) | 2025.09.09 |
| [C#] 2720번: 세탁소 사장 동혁 (0) | 2025.09.08 |
| [C#] 11005번: 진법 변환 2 (0) | 2025.09.06 |