Koala - 13기/코딩테스트 준비 스터디
[프로그래머스] 숫자 변환하기
jeonyoungseo
2024. 1. 18. 10:01
그리디와 DP 아이디어를 이용해서 풀이한다.
현재위치에서 +n, x2, x3하였을 때 DP 값을 갱신해 나간다.
# 그리디 + DP
def solution(x, y, n):
answer = -1
DP = [float('inf') for _ in range(y+1)]
#init
DP[x]=0
for i in range(x,y+1):
if i+n<=y:
DP[i+n]=min(DP[i+n], DP[i]+1)
if 2*i<=y:
DP[2*i]=min(DP[2*i], DP[i]+1)
if 3*i<=y:
DP[3*i]=min(DP[3*i], DP[i]+1)
#print(DP[y])
if DP[y]!=float('inf'):
answer = DP[y]
return answer