문제 설명
* 주의 1
2와 3의 최소공배수는 같은 수 때문에 elif 쓰면 안되고 그냥 if문 2개로 처리해야 함!
파이썬 코드
N = int(input())
dp = [0] * (N+1)
for i in range(2, N+1):
dp[i] = dp[i-1] + 1
if i % 2 == 0:
dp[i] = min(dp[i], dp[i//2] + 1)
if i % 3 == 0:
dp[i] = min(dp[i], dp[i//3] + 1)
print(dp[N])
'알고리즘 📚 > 백준' 카테고리의 다른 글
[백준] 23246. Sport Climbing Combined | 파이썬 (0) | 2024.07.25 |
---|---|
[백준] 11650. 좌표 정렬하기 | 파이썬 (1) | 2024.07.25 |
[백준] 12865. 평범한 배낭 | 파이썬 (0) | 2024.07.20 |
[백준] 9095. 1, 2, 3 더하기 | 파이썬 (0) | 2024.07.19 |
[백준] 11048. 이동하기 | 파이썬 (0) | 2024.07.19 |