본문 바로가기

Python/백준

[python/백준] 2292번: 벌집

728x90

 

문제

 

중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램

 

 

⭐ 코드 분석

 

 

 

1 - 5 - 15 - 31 - 53 이 번호를 시작으로 새로운 칸을 만든다

증가하는 수 : 4+ 10+ 16+ 22+

칸 층을 지날 때마다 6의 배수씩 증가한다.

 

 

⭐ 코드

 

n = int(input())

nums_pileup = 1  # 벌집의 개수, 1개부터 시작
cnt = 1
while n > nums_pileup :
    nums_pileup += 6 * cnt  # 벌집이 6의 배수로 증가
    cnt += 1  # 반복문을 반복하는 횟수
print(cnt)

 

 

4가 증가하는 것이 아닌 6까지 2층이므로 cnt * 6을 해도 상관이 없다