목록코딩/백준 알고리즘 (97)
삐까냥의 파도타기
방문한 숫자를 체크하고 개수를 파악하며 나아가는 로직 로직이 도저히 생각안나, 타 사이트를 통해 로직 공부를 했습니다. 코드만 보고 이해하기 쉽도록 변수명에 신경썼습니다.설명 없이 코드와 주석만 보고 이해해보세요. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q1562 { static int[][][] dp = new int[101][10][1024];public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamRead..
같은 문자를 체크하며, 팰린드롬을 확인하는 로직 같은 문자를 체크할 경우 사진과 같이 V라인을 확인할 수 있습니다. 대신 2가지의 V라인이 존재하므로, 이를 구분하여 로직을 구현했습니다. 0, 0부터 대각선으로 내려가며, 꼭지점 or 변곡점을 확인할 경우, 대각선(/) 방향으로 올라가며 체크합니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q1254 { static boolean[][] dp = new boolean[1001][1001];static String inputStr;public static void main(String[] args) th..
가능한 from, to 돌다리 개수를 저장하며 나아가는 로직 마법의 두루마리에 적힌 문자열의 순서대로 chatAt(from) charAt(to)가 일치하면 저장하며 나아갑니다. 대신, 마법의 두루마리에 적힌 문자열의 길이가 1인 경우 해당 로직을 수행하지 못하므로따로 로직을 수행합니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2602 { static int[][][] dp;public static void main(String[] args) throws Exception{BufferedReader br = new BufferedReader(new ..
LIS입니다. 아래와 같이 구현했으나, 메모리 초과로 해당 알고리즘은 불가능했네요. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2352 { static int[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int num = Integer.parseInt(st..
연속된 문자열의 길이를 저장하며 나아가는 로직k[i][j]의 문자를 비교하여, 같은 경우 k[i][j] = k[i-1][j-1]+1 을 합니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q5582 { static int[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLin..
n번째의 감소하는 수를 저장하며 나아가는 로직 감소하는 로직은 간단합니다마지막 자리인 일의 자릿수의 숫자가 9인 경우 0~8까지 이동할수 있으며일의 자릿수의 숫자가 0보다 큰 n인 경우 0~n까지 이동가능합니다.숫자를 카운트하며 감소하는 수를 계산하면 됩니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.StringTokenizer; public class Q1038 {static LinkedList list = new LinkedList();public static void main(String[] args) throws Exception {Buffered..
생각해보면 가장 긴 부분 수열 알고리즘 입니다. 줄세우는 방법은 오름차순이며,오름차순으로 정렬된 아이들을 제외하곤 다른 아이들을 재정렬 해야 합니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2631 { static int[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.read..
최대값을 저장하며 나아가는 로직 문제는 로봇이 왼쪽, 오른쪽, 아래쪽으로 갈 수 있습니다.따라서 아래쪽으로 이동할경우를 고려하여 오른쪽 방향으로 이동할 경우의 최대값과 왼쪽 방향으로 이동할 경우의 최대값을 구해야합니다. 첫째줄은 max값 비교없이 오른쪽으로 이동하면 됩니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2169 { static int[][] dp, value;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new I..
최대 열매 획득 개수를 저장하며 나아가는 로직입니다. 개인적으로 어려웠습니다. 코드에 주석을 달아놨으니, 참고하세요. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2240 { static int[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int num = ..
특정 value의 최소값을 구하며 나아가는 로직 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2294 { static int[] dp, coin;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int coinNum = Integer.parseInt(st.nextToken()..