1463번: 1로 만들기
첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다.
www.acmicpc.net
문제풀이
N = int(input())
dp_table = [0] * (N+1)
for i in range(2, N+1):
dp_table[i] = dp_table[i-1] + 1
if i % 3 == 0:
dp_table[i] = min(dp_table[i], dp_table[i//3] + 1)
if i % 2 == 0:
dp_table[i] = min(dp_table[i], dp_table[i//2] + 1)
print(dp_table[N])
'ALGORITHM > Algorithm 문제풀이' 카테고리의 다른 글
[문제풀이] 백준 1932번 정수 삼각형 (0) | 2022.02.19 |
---|---|
[문제풀이] 백준 2579번 계단 오르기 (0) | 2022.02.19 |
[문제풀이] 백준 2839번 설탕 개수 (0) | 2022.02.19 |
[문제풀이] 백준 4963번 섬의 개수 (0) | 2022.02.05 |
[문제풀이] 백준 4673번 셀프 넘버 (0) | 2022.01.27 |