본문 바로가기

알고리즘/백준알고리즘

[백준 알고리즘/Python3] 2292 벌집

문제 해석

그림을 보니 안에 있는 숫자를 보기보단 것에 있는 껍질들을 봤다.

 

1을 감싸는건 6개

6개를 감싸는건 12개

12개를 감싸는건 18개

...

 

즉, 껍질의 갯수는 6의 배수로 늘어난다.

 

그럼 각 숫자가 어떤 껍질에 있는지 알까?

 

13을 봐보자.

 

13을 1칸 땡기면 12가 된다.

12를 6칸 땡기면 6이 된다.

6을 12칸 땡기면 -6이 된다.

 

-6은 존재할 수 없으니 2번 땡겼으니 2번째 껍질에 있을 것이다.

 

1부터 2번째 껍질까지의 길이는 3이다.

 

 

코드

input_num = int(input())
count = 0

result = input_num - 1
while(True):
    result =result - (6 * count)
    if(result <=0):
        count +=1
        break
    count +=1
print(count)

result는 입력받은 것에서 바로 1을 뺀다. 첫 번째 껍질부터 시작하기 위함이다.

 

while문을 돌려 6의 배수에서 뺐다.

 

만약 0이나 음수가 나오면 while문을 멈춘다.

그 때, 1부터 시작한 값을 구해야 하니 1을 더하고 count한 값을 출력한다.

 

 

728x90