리셋 되지 말자

[백준 2292] 벌집 - 수열 본문

알고리즘

[백준 2292] 벌집 - 수열

kyeongjun-dev 2021. 12. 27. 21:11

코드

n = int(input())
if n == 1:
    print(1)
    exit()
cnt = 2
sum_num = 12
total_sum = 7
while n > total_sum:
    cnt += 1
    total_sum = total_sum + sum_num
    sum_num += 6
print(cnt)

 

설명

  • 그림의 규칙을 파악하면 수열이 된다.
  • 1, 7, 19, 37, 61 을 기준으로 잡으면 1~7 : 6, 7~19 : 12, 19~37 : 18, 37~61 : 24
  • 6, 12, 18, 24 순서로 차이가 생기게 된다.
  • 6씩 증가하는 sum_num을 이용해 while 문을 돌 때마다 total_sum에 더해준다. 그리고 cnt도 1씩 증가한다.
  • 그러다가 입력한 n이 total_sum보다 커지면 최소거리인 cnt를 출력한다.
Comments