2024.09.07기준 - 골드5백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 조건에 맞게 격자에서 내려갈 때 가장 작은 값과 큰 값을 출력하는 문제입니다.다이나믹 프로그래밍으로 접근을 했습니다. 1. 입력받은 값들을 저장해줍니다.// 수를 저장할 배열int[][] grid = new int[n][3];StringTokenizer st;for (int i = 0; i 2. dp를 3차원 배열로 생성해 최댓값과 최솟값을 같이 계산을 해주었습니다.// dp[][][0] = 최댓값, dp[][][1] = 최솟값int[][][] dp = new int[n][3][2]; 첫 번째 줄을 세팅해줍니다.// 첫 줄 세팅for (int i = 0; i 3. dp 계산2번째 줄부터 윗 줄을 참조하면서..
2024.08.30기준 - 실버3백준, BEAKJOON, BOJ, JAVA, 자바 🟥 풀이이 문제는 출발점 (1, 1)에서 도착점 (n, m)까지 갈 때, 주어진 세 방향으로 갔을 시 나오는 경우의 수를 출력하는 문제입니다. 접근 방법우선 문제에 나와있는 dp를 통해 접근을 시도했습니다.1000000007로 나눈 나머지의 경우의 수를 구하는 것이기 때문에 int를 이용해서 풀 수 있다고 생각을 했습니다. 1. dp를 저장할 배열을 생성해 x = 0일 때와 y = 0일 때를 미리 작업을 했습니다.// 경우의수를 저장할 배열int[][] numberCase = new int[y][x];// x = 0일 때는 무조건 1가지의 방법 밖에 없다.for (int i = 0; i 미리 하지 않아도 조건문을 통해 참..
2024.08.26기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 주어진 조건으로 스티커를 붙힐 때 점수를 합산 해, 가장 높은 점수를 출력하는 문제입니다. 이 문제는 붙이는 방식에서 조건을 찾는것이 핵심이라고 생각합니다.v 체크된 스티커를 붙힐 때, 참고 해야하는 스티커는 총 2개로 0줄이면 1줄, 1줄이면 0줄에서 앞쪽 과 2번째 앞쪽을 참고 해 큰 값을 가지고 가는 조건입니다.dp로 접근하게 된다면이렇게 뒤에 있는 2개의 칸을 참조하도록 하는 것입니다. 1. 입력받은 스티커 점수를 배열에 저장합니다.n = Integer.parseInt(br.readLine()); // 한 줄의 스티커 개수sticker = new int[2][n + 1];for (int i = 0; i..
2024.08.25기준 - 실버1백준, BEAKJOON, BOJ, JAVA, 자바 풀이이 문제는 dp를 이용해 한 칸 씩 내려갈 때 마다 수를 더 해 마지막 칸에서 가장 큰 값을 가지고 있는 수를 출력하는 문제입니다. 예제를 통해서 문제를 풀어 나가도록 하겠습니다.// 예제573 88 1 02 7 4 44 5 2 6 5 1. dp에 초기 맨 꼭대기 층을 먼저 입력해줍니다.List[] list = new LinkedList[n + 1];// 꼭대기 층을 먼저 넣어 줍니다.list[0] = new LinkedList();list[0].add(0);list[1] = new LinkedList();list[1].add(Integer.parseInt(br.readLine())); 2. 맨 꼭대기 층에서 2번째 층..