diff --git "a/zinzoddari/8\354\243\274\354\260\250/Problem1463" "b/zinzoddari/8\354\243\274\354\260\250/Problem1463" new file mode 100644 index 0000000..e6f5403 --- /dev/null +++ "b/zinzoddari/8\354\243\274\354\260\250/Problem1463" @@ -0,0 +1,45 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +public class Main { + private static BufferedReader bufferedReader; + + private static void init() { + bufferedReader = new BufferedReader(new InputStreamReader(System.in)); + } + + private static int getValue() { + try { + return Integer.parseInt(bufferedReader.readLine()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + public static void main(String[] args) { + init(); + + int N = getValue(); + int[] array = new int[N + 1]; + + for (int i = 2; i <= N; i++) { + array[i] = array[i - 1] + 1; + if(i % 2 == 0) { + array[i] = min(array[i], array[i / 2] + 1); + } + + if(i % 3 == 0) { + array[i] = min(array[i], array[i / 3] + 1); + } + } + + System.out.println(array[N]); + } + + public static int min(int a, int b) { + return Math.min(a, b); + } +} +``` diff --git "a/zinzoddari/8\354\243\274\354\260\250/Problem9095" "b/zinzoddari/8\354\243\274\354\260\250/Problem9095" new file mode 100644 index 0000000..f60b02f --- /dev/null +++ "b/zinzoddari/8\354\243\274\354\260\250/Problem9095" @@ -0,0 +1,71 @@ +```java +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Main { + private static BufferedReader bufferedReader; + private static StringTokenizer stringTokenizer; + private static StringBuilder stringBuilder; + + private static void init() { + bufferedReader = new BufferedReader(new InputStreamReader(System.in)); + stringBuilder = new StringBuilder(); + } + + private static int getValue() { + if (stringTokenizer == null || !stringTokenizer.hasMoreTokens()) { + try { + stringTokenizer = new StringTokenizer(bufferedReader.readLine(), " "); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + return Integer.parseInt(stringTokenizer.nextToken()); + } + + public static void main(String[] args) { + init(); + + int T = getValue(); + + int[] input = new int[T]; + int max = 0; + for (int i = 0; i < T; i++) { + input[i] = getValue(); + if (max < input[i]) { + max = input[i]; + } + } + + + int[] dp = new int[max + 1]; + dp[1] = 1; + if(max == 1) { + System.out.println(dp[max]); + return; + } + dp[2] = 2; + if(max == 2) { + System.out.println(dp[max]); + return; + } + dp[3] = 4; + if(max == 3) { + System.out.println(dp[max]); + return; + } + for (int i = 4; i < dp.length; i++) { + dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]; + } + + for (int i = 0; i < T; i++) { + stringBuilder.append(dp[input[i]]).append("\n"); + } + + System.out.println(stringBuilder.toString().trim()); + } +} +```