본문 바로가기

알고리즘구현능력/문제해결능력

(78)
[java] 백준/11057 오르막 수 1자리일때는 1개씩 dp[n][l] n은 자리수 l은 마지막수 dp[1][l] l -> 0~9 까지 1로 초기화 dp[n][l] = dp[n-1][0]+dp[n-1][1]+dp[n-1][2]+....+d[n-1][l] 이걸 코드로 하면.. package basic; import java.io.BufferedReader; import java.io.InputStreamReader; public class AscendingStair { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = new Integer(br...
[java] 백준/9461 파도반수열 길이가 1인 삼각형과 2인삼각형을 다 그리고 나면 일정한 규칙처럼 크기가 증가한다. 그걸 가지고 다이나믹 규칙을 찾아보면 아래와 같다. dp[n] = dp[n-1] + dp[n-5]
[java] 백준/9465 스티커 빨간색 대각선 파란색 대각선 비교 더 큰것을 입력한다. package basic; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class Sticker { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedW..
[java] 백준/2163 초콜릿자르기
[java] 백준/1010 다리놓기 위의 문제는 다이나믹 프로그래밍으로 풀수 있는 문제 유형이다. 다리를 직접 그려서 해보는 것이 가장 빠르게 이해가 편하다. n은 서쪽 사이트 m은 오른쪽 사이트로 볼때 n = 1 일때는 dp[1][m] = m 이다 dp[2][4] = dp[1][1]+dp[1][2]+dp[1][3]; dp[n][m] = dp[n-1][1]+dp[n-1][2] ......dp[n-1][m-2]+dp[n-1][m-1]; package practice; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringT..
[java] 백준/11052 카드구매하기 위의 문제는 다이나믹 프로그래밍의 유형중에 하나이다. n개의 카드를 구매한다고 했을때 2개짜리카드 팩을 선택하고 삿을떄의 경우 dp[n-2] +num[2] 그렇다면 dp[1]부터 시작했다고 했을때 n개의 카드를 구매한다고 했을때 x개짜리카드 팩을 선택하고 삿을떄의 경우 dp[n-x] +num[x] 단 x범위는 x
[java] 백준/11053 가장 긴 증가하는 부분 수열 가장 긴 증가하는 부분 수열.. A[i-1] , A[i] 비교 package basic; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class LongIncrasesu { public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int ans = 0; int n = new Integer(br.readLine()); int num[] = new int [n]; int dp[] = new ..
[java] 백준/11727 2xn 타일링 2 dp[n] = dp[n-1]+dp[n-2]*2 dp[1] 과 dp[2]일때 값은 따로 구해야한다! dp[1] = 1; dp[2] =3 ;