diff --git "a/0305/basic_B11053_\352\260\200\354\236\245\352\270\264\354\246\235\352\260\200\355\225\230\353\212\224\353\266\200\353\266\204\354\210\230\354\227\264/Jaemin.java" "b/0305/basic_B11053_\352\260\200\354\236\245\352\270\264\354\246\235\352\260\200\355\225\230\353\212\224\353\266\200\353\266\204\354\210\230\354\227\264/Jaemin.java" new file mode 100644 index 0000000..0055835 --- /dev/null +++ "b/0305/basic_B11053_\352\260\200\354\236\245\352\270\264\354\246\235\352\260\200\355\225\230\353\212\224\353\266\200\353\266\204\354\210\230\354\227\264/Jaemin.java" @@ -0,0 +1,39 @@ +package 0305.basic_B11053_가장긴증가하는부분수열; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.StringTokenizer; + +public class Jaemin { + public static void main(String[] args) throws NumberFormatException, IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + int N = Integer.parseInt(br.readLine()); + int[] arr = new int[N]; + int[] dp = new int[N]; + StringTokenizer st = new StringTokenizer(br.readLine()); + + for(int i = 0; i < N; i++) { + arr[i] = Integer.parseInt(st.nextToken()); + dp[i] = 1; + } + + + // 50 10 40 20 30 + for (int i = 0; i < N; i++) { + for(int j = 0; j < i; j++) { + if(arr[i] > arr[j]) { + dp[i] = Math.max(dp[i],dp[j] + 1); + } + } + } + + int max = 0; + for(int n : dp) { + max = Math.max(max, n); + } + + System.out.println(max); + } +} + diff --git "a/0305/mid_P3_N\354\234\274\353\241\234\355\221\234\355\230\204/Jaemin.java" "b/0305/mid_P3_N\354\234\274\353\241\234\355\221\234\355\230\204/Jaemin.java" new file mode 100644 index 0000000..0800355 --- /dev/null +++ "b/0305/mid_P3_N\354\234\274\353\241\234\355\221\234\355\230\204/Jaemin.java" @@ -0,0 +1,42 @@ +// package 0305.mid_P3_N으로표현; +import java.util.*; +import java.util.logging.LogManager; + +public class Jaemin { + public static void main(String[] args) { + System.out.println(solution(5, 12)); + System.out.println(solution(2, 11)); + } + static int solution(int N, int number) { + List> dp = new ArrayList<>(); + + for(int i = 0; i <= 8; i++) { + dp.add(new HashSet<>()); + } + + int baseNumber = N; + for(int i = 1; i <= 8; i++) { + dp.get(i).add(baseNumber); + baseNumber = baseNumber * 10 + N; + } + + for(int i = 1; i <= 8; i++) { + for(int j = 1; j < i; j++) { + for(int a : dp.get(j)) { + for(int b : dp.get(i -j)) { + dp.get(i).add(a + b); + dp.get(i).add(a - b); + dp.get(i).add(a * b); + if(b != 0)dp.get(i).add(a /b); + } + } + } + } + + for(int i = 1; i <= 8; i++) { + if(dp.get(i).contains(number)) return i; + } + + return -1; + } +}