Skip to content

Commit e599c8f

Browse files
authored
Merge pull request #955 from AlgorithmWithGod/LiiNi-coder
[20250922] BOJ / G5 / 1로 만들기 2 / 이인희
2 parents 929fca5 + 4605376 commit e599c8f

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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+
```

0 commit comments

Comments
 (0)