백준 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