문제 설명 및 제한사항
아이디어 및 해결 방법
코드
MAX = 1000001
def solution(x, y, n):
DP = [MAX] * MAX
DP[x] = 0
for i in range(x, MAX):
if i + n < MAX:
DP[i + n] = min(DP[i + n], DP[i] + 1)
if 2 * i < MAX:
DP[2 * i] = min(DP[2 * i], DP[i] + 1)
if 3 * i < MAX:
DP[3 * i] = min(DP[3 * i], DP[i] + 1)
return DP[y] if DP[y] != MAX else -1
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges