백준문제풀이 8단계 일반 수학 1(5) 2292번 벌집 (C#)

2024. 6. 16. 20:00백준 문제풀이/8단계 일반 수학 1

 

중앙에서 부터 시계방향으로 돌며 번호가 증가하는데

중앙 1번방에서 N번방까지 최소 몇개의 방을 지나가느냐 하는 문제다.

 

이 문제를 처음 봤을땐 뭔가 싶었다.

너무 어려운 문제 아닌가? 싶었는데.

생각해보니 꽤나 간단한 문제였다.

 

각번째의 방은 6의 배수만큼 생성된다.

그니까

첫번쨰 > 1

두번째 >  6(2~7)

세번째 > 12(8~19)

.

.

다섯 번째 > 24(38~61)

 

using System;
class BackJoon
{
    static void Main(string[] args)
    {
        int N = int.Parse(Console.ReadLine());
        int count = 0;
        int Num = 1;
        while (true)
        {
            if (N <= Num)
            {
                break;
            }
            count++;
            Num += 6 * count;
        }
        Console.WriteLine(count + 1);
    }
}

 

N의 범위가 1,000,000,000 까지니까

이 나올때까지 반복해주자.

 

N이 Num이하 라면 종료.

반복할때마다 count를 증가시켜주고

Num에 count*6을 더해서 넣어주자.

 

마지막으로 count+1을 출력해주면 끝

1이라면 1출력

7이라면 2출력...