BOJ2292 벌집
브론즈II | 백준 2292 | Python3 파이썬 풀이
그림이 조금 어지럽지만 색칠을 하면 생각보다 쉽게 규칙을 발견할 수 있다.
색칠한 육각형 그룹을 껍질이라고 하겠다. 주황색이 1껍질, 노란색이 2껍질.. 이다.
빨간색 화살표는 다음 껍질로 넘어가는 경계가 맞닿은 두 칸이다.
1을 제외하고 첫 번째 껍질부터 흰색 박스를 보면
(껍질 시작 값 + (껍질 번호 x 6))을 하면 다음 껍질의 시작 번호를 얻을 수 있다.
어떤 수가 다음 껍질보다 작다면 해당 껍질에 속해있는 것이므로 껍질 번호를 출력한다.
import sys
input = sys.stdin.readline
N = int(input())
# N == 1인 경우 예외
if N == 1:
print(1)
exit(0)
c = 1 # 껍질 번째
n = 2 # 껍질의 시작값
while True:
n = (n + (6 * c)) # 다음 껍질 범위 계산
# 다음 껍질보다 작으면 출력
if N < n:
print(c + 1)
exit(0)
# 껍질 +1
c += 1