목록코딩 (163)
삐까냥의 파도타기
볼륨을 저장하며 나아가는 로직알고리즘이 필요 없네요. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q1495 { static boolean[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int musicNum = Integer.parseInt(st.nextTok..
연속된 일반석의 개수가 n개일때의 값을 dp로 구하는 로직 연속된 일반석이 n개일 경우의 가능수k(n) = k(n-1) + k(n-2) 또한, 지정석은 정렬된 순서대로 알려주기 때문에,end - start -1 로 연속된 일반석의 개수를 알 수 있습니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q2302 { static boolean[] array;static int[] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(ne..
다음 계산을 계산하며 나아가는 로직. 알고리즘이라고 할게 없네요. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q5557 { static int[] nums;static int result;static long[][] dp = new long[101][21];public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokeniz..
경로를 저장하며 나아가는 로직 k[i][j] = k[i-1][j] + k[i][j-1] 입니다. 동그라미가 없는 경우 (K=0 일때)와 동그라미가 있는 경우를 나누어서 구현했습니다.(이해하기 쉽도록, 처음 생각한 대로 구현했어요) import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q10164 { static int[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));St..
import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q9507 { static long[] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());dp = new long[68];dp[0] = 1;dp[1] = 1;dp[2] = 2;dp[3] = 4;for (int i = 4; i
LCS와 같은 로직에서 String을 출력하는 로직 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.LinkedList;import java.util.Stack;import java.util.StringTokenizer; public class Q9252 { static Stack result = new Stack();static int[][] dp;public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st..
String을 비교하며 최대값을 저장하며 나아가는 로직 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q9251 { 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());String firstString = st.nextToken();st = new ..
타일을 저장하며 나아가는 로직 점화식 dp[i] = dp[i-2]*3 + dp[i-4]*2 + ... dp[2]*2 + 2 매 타일마다 new 타일 2개가 추가되므로, +2dp[i-2] 타일 뒤에 올 수 있는 타일이 3가지 있으므로, +dp[i-2]*3dp[i-4] 타일 뒤에 올 수 있는 타일은 dp[4]의 new 타일 2개 이므로, +dp[i-4]*2dp[i-6] 타일 뒤에 올 수 있는 타일은 dp[6]의 new 타일 2개 이므로, +dp[i-6]*2...dp[2] 타일 뒤에 올 수 있는 타일은 dp[i-2]의 new 타일 2개 이므로, +dp[2]*2 import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Stri..
제곱근의 최소값을 저장하며 나아가는 로직 1. 제곱근을 가지는 수(ex 1, 4, 9, 16)의 최소값은 1이므로, 1로 세팅합니다.2. 문제에서 "어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다."이므로,dp [i] = dp[i-j*j] + dp[j*j] 의 로직이 가능합니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q1699 { static int[] dp = new int[100001];public static void main(String[] args) throws Exception {BufferedReader br =..
dp[i-2]에 11, 00을 추가하면 dp[i]의 일부가 되며dp[i-1]에 1을 추가하면 dp[i]의 일부가 됩니다. 따라서 dp[i] = dp[i-1] + dp[i-2]입니다. import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.StringTokenizer; public class Q1904 { static long[] dp = new long[1000001];public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringToken..