그리디와 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
'Koala - 13기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[ 백준 / Pyhton ] #1699 제곱수의 합 (0) | 2024.01.20 |
---|---|
[Baekjoon/C++] 11726번: 2xn 타일링 (0) | 2024.01.19 |
[백준/Python] 외판원 순회 2 (0) | 2024.01.17 |
[백준/C++] RGB거리 (0) | 2024.01.17 |
[PG/Python] 산 모양 타일링 (1) | 2024.01.17 |