입력

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

출력

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

 

 

다음 단계 방이 6개씩 늘어나는걸 이용하여 최대 값을 구하고 입력한 수가 그 값보다 작다면 현재 방의 단계가 나온다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
 
class Program
{
    static void Main(string[] args)
    {
        int n = int.Parse(Console.ReadLine());
        int iMax = 1;
        int iResult = 0;
        
        for(int i = 0; i < n; i++)
        {
            iMax += 6 * i;
            if(iMax >= n)
            {
                iResult = i + 1;
                break;
            }
        }
        Console.WriteLine(iResult);
    }
}
cs

 

 

https://www.acmicpc.net/problem/2292

 

2292번: 벌집

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌��

www.acmicpc.net

 

+ Recent posts