문제 풀이/Baekjoon Online Judge

[python3] 1463번 1로 만들기

[잉간] 2018. 4. 18. 11:57


2부터 N까지의 숫자들의 연산 최소값을 구하는 방식을 사용했다.

문제풀이

lst = [0,0]

N = int(input())

for rpt in range(2, N + 1):
	lst.append(lst[rpt-1]+1)
	if rpt % 2 == 0:
		lst[rpt] = min(lst[rpt], lst[rpt//2]+1)
	if rpt % 3 == 0:
		lst[rpt] = min(lst[rpt], lst[rpt//3]+1)
print(lst[N])