백준 2292

Updated:

2292

문제의 최초 접근 : 규칙 찾기

Rule

$G_{t - 1} + 1 ~ 6_t = G_t$

t = 1step [ex) 1 -> 2 ~ 7 -> 8 ~ 19 …] G = Max array value [ex) $G_1 = 1 , G_2 = 7$]

method

  • 반복되는 계산을 Dynamic Programming으로 접근하여, 문제를 해결

새로 알게된 사실

list(range(a, b , c))를 사용하면 a , b 까지의 범위로 리스트 생성 , c 파라미터에 값을 넣으면 append 데이터 규칙 생성


x = list(range(0 , 10 , 2))

print(x)

0 , 2 , 4 , 6 , 8 , 10

source code

import re

data = eval(input())

data_range = 2

update_data_range = 1 + 6 

result = 0
count = 1
if data < 1 or data >= 1000000000:
    print('error! please check your input data range!')

else:
    range_list = list(range(data_range , update_data_range))

    while True:
        if data == 1:
            print('0')
            break

        elif data in range_list:
            print(count)
            break

        else:
            result += 1
            data_range = update_data_range + 1
            update_data_range = (data_range + 6 * (result + 1)) - 1
            range_list = list(range(data_range , update_data_range + 1))
            print(data_range , " : " , update_data_range)
            print(range_list)
            count += 1
            print("---")

Leave a comment