반응형
https://www.acmicpc.net/problem/1463
import sys
x = int(sys.stdin.readline())
# dp 테이블
d = [0 for _ in range(x+1)]
for i in range(2, x + 1):
# 1을 빼는경우
d[i] = d[i - 1] + 1
# 1을 뺄때와 3과 2로 나눌때 횟의 최솟값을 d[i]에 담는다
if i % 2 == 0:
d[i] = min(d[i], d[i // 2] + 1)
if i % 3 == 0:
d[i] = min(d[i], d[i // 3] + 1)
#결과 출력
print(d[x])
반응형
'알고리즘 풀이 > 다이나믹 프로그래밍' 카테고리의 다른 글
[백준/파이썬] 1003번 : 피보나치 함수 (0) | 2023.01.09 |
---|---|
[백준/Python]1149번 : RGB거리 (0) | 2023.01.05 |
댓글