Skip to content

Commit b90c615

Browse files
committed
1로 만들기 2 풀이
1 parent e8bf660 commit b90c615

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

BAEKJOON/2Silver/1로 만들기 2.py

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# 다이나믹 프로그래밍, 그래프 이론, 그래프 탐색
2+
# https://www.acmicpc.net/problem/12852
3+
4+
N = int(input())
5+
dp = [None]*(int(1e6)+1)
6+
dp[1] = (0, [1])
7+
dp[2] = (1, [2,1])
8+
dp[3] = (1, [3,1])
9+
10+
for n in range(4, N+1):
11+
c = [(dp[n-1][0]+1, [n] + dp[n-1][1])]
12+
d2 = n/2
13+
if int(d2) == d2:
14+
d2 = int(d2)
15+
c.append((dp[d2][0]+1, [n] + dp[d2][1]))
16+
d3 = n/3
17+
if int(d3) == d3:
18+
d3 = int(d3)
19+
c.append((dp[d3][0]+1, [n] + dp[d3][1]))
20+
c = min(c)
21+
dp[n] = c
22+
23+
print(dp[N][0])
24+
print(*dp[N][1])

0 commit comments

Comments
 (0)