File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ public static void main (String [] args ) throws IOException {
7+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ int n = Integer . parseInt(br. readLine());
9+ int [] dp = new int [n + 1 ];
10+ int [] before = new int [n + 1 ]; // 이전 경로
11+
12+ dp[1 ] = 0 ;
13+ for (int i = 2 ; i <= n; i++ ) {
14+ // 1뻄
15+ dp[i] = dp[i - 1 ] + 1 ;
16+ before[i] = i - 1 ;
17+ // 2로 나눔
18+ if (i % 2 == 0 && dp[i] > dp[i / 2 ] + 1 ) {
19+ dp[i] = dp[i / 2 ] + 1 ;
20+ before[i] = i / 2 ;
21+ }
22+ // 3으로 나눔
23+ if (i % 3 == 0 && dp[i] > dp[i / 3 ] + 1 ) {
24+ dp[i] = dp[i / 3 ] + 1 ;
25+ before[i] = i / 3 ;
26+ }
27+ }
28+
29+ StringBuilder sb = new StringBuilder ();
30+ sb. append(dp[n]). append(" \n " );
31+
32+ int cur = n;
33+ while (cur > 0 ) {
34+ sb. append(cur). append(" " );
35+ if (cur == 1 )
36+ break ;
37+ cur = before[cur];
38+ }
39+ System . out. println(sb);
40+ }
41+ }
42+
43+ ```
You can’t perform that action at this time.
0 commit comments