Algorithm Study/Python

[백준 파이썬] # 2292 벌집

728x90
반응형

Bronze II

# 2292 벌집

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

 

2292번: 벌집

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

www.acmicpc.net

 

풀이

N = int(input())
cnt = 1
an = [1, 2]
while an[-1] <= N:
    an.append(an[-1] + cnt*6)
    cnt += 1
print(an.index(an[-1]))

 

후기

  • 계차수열 bn = [6, 12, 18 24 ..]을 활용해서 an = [1, 2, 8, 20, 38 ..]을 구했다.
  • N의 크기에 따라 최소 크기의 an이 계산되도록 조건문을 세우는게 중요한 문제였다.