//알고리즘 1. 조합문제 2. 3장의 카드를 뽑고 3장의 카드의합과 21의 차를 구한 후 가장 0보다 큰 가장큰값을 찾음. import java.util.Arrays; import java.util.Scanner; public class 블랙잭 { static int N, M; static int[] arr, numbers; static int max, ans; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); arr = new int[N]; for (int i = 0; i < arr.length; i++) { arr[i] = sc.nextInt();..
//알고리즘 1. 동적프로그래밍(dp) 2. 1부터 주어진값까지 dp테이블을 만들어 계산함. 3. 3으로 나누어떨어질 때, 2로 나누어떨어질 때, 아니면 1을 빼는데 이 순서대로 하면 답이 안나올 수도 있음. -> 역순으로 시작해야 최소연산의 횟수를 구할 수 있음.(아이디어가 필요한 문제인듯) import java.util.Scanner; public class 백준_1로만들기_1463 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[] ans = new int[N+3]; ans[1] = 0; ans[2] = 1; ans[3] = 1; for (int i = 4; ..
//알고리즘 1. 재귀로 최대가 될 수 있는 i값과 그때의 결과값을 찾음. 2. 배열을 구해서 직접 for문으로 값을 저장 시킴. import java.util.Scanner; public class 수이어가기_2635 { static int T, ans, N; public static void main(String[] args) { Scanner sc = new Scanner(System.in); T = sc.nextInt(); for (int i = T; i >= 0; i--) { cal(1,T,i,i); } int[] arr = new int[ans]; cal(1,T,N,arr); System.out.println(ans); int num = T; for (int i = 0; i < arr.leng..