백준 2292 파이썬 벌집

 

벌집처럼 육각형으로 이루어져 있는 칸에 적힌 수까지 가려면 몇 개의 방을 지나야 하는지 출력하는 문제

 

 

지나가야 하는 방의 개수 2개 : 2, 3, 4, 5, 6, 7 - 6개
지.방.개. 3개: 8, 9, 10, 11, ... 19 - 12개
지.방.개. 4개: 20 ~ 37 - 18개

 

6씩 늘어난다

 

 

X = int(input())
a = 1
six = 6
cnt = 1
while X > a :
    cnt += 1
    a = a + six
    six += 6
print(cnt)

X는 주어진 수

 

a는 지.방.개.가 cnt개일 때 할당되는 수 중 가장 큰 수

(예를 들어, cnt = 2이고 a = 7일 때 2~7까지는 지.방.개.가 2개(=cnt)이다.)

 

six는 늘어나는 수의 개수..

즉 6, 12, 18 이렇게 늘어나니까 한 번 while문을 돌 때 6씩 늘어난다.

 

cnt는 지.방.개.의 개수

최종적으로 출력하는 내용이다.