File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change
1
+ package backjoon ;
2
+ // https://www.acmicpc.net/problem/1463
3
+ import java .io .BufferedReader ;
4
+ import java .io .IOException ;
5
+ import java .io .InputStreamReader ;
6
+
7
+ public class _1463 {
8
+
9
+ static Integer [] dp ;
10
+
11
+ public static void main (String [] args ) throws IOException {
12
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
13
+
14
+ int N = Integer .parseInt (br .readLine ());
15
+
16
+ dp = new Integer [N +1 ];
17
+ dp [0 ] = dp [1 ] = 0 ;
18
+
19
+ System .out .println (makeOne (N ));
20
+ }
21
+
22
+ static int makeOne (int n ){
23
+ if (dp [n ] == null ){
24
+ // 6์ผ๋ก ๋๋ ์ง๋ ๊ฒฝ์ฐ
25
+ if (n %6 == 0 ){
26
+ dp [n ] = Math .min (makeOne (n -1 ), Math .min (makeOne (n /3 ), makeOne (n /2 ))) + 1 ;
27
+ }
28
+ // 3์ผ๋ก๋ง ๋๋ ์ง๋ ๊ฒฝ์ฐ
29
+ else if (n %3 == 0 ){
30
+ dp [n ] = Math .min (makeOne (n /3 ), makeOne (n -1 ))+1 ;
31
+ }
32
+ // 2๋ก๋ง ๋๋ ์ง๋ ๊ฒฝ์ฐ
33
+ else if (n %2 == 0 ){
34
+ dp [n ] = Math .min (makeOne (n /2 ), makeOne (n -1 ))+1 ;
35
+ }
36
+ // ๋นผ๊ธฐ 1๋ก๋ง ๋๋ ๊ฒฝ์ฐ
37
+ else {
38
+ dp [n ] = makeOne (n -1 )+1 ;
39
+ }
40
+ }
41
+ return dp [n ];
42
+ }
43
+ }
44
+ /*
45
+ input
46
+ 10
47
+
48
+ output
49
+ 3
50
+ */
You canโt perform that action at this time.
0 commit comments