Skip to content

Commit

Permalink
day11: (1) dp/2225
Browse files Browse the repository at this point in the history
  • Loading branch information
CheolHoJung committed May 7, 2019
1 parent c0923ee commit 03c4a9e
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ algorithm-practice
[~~2557~~](https://www.acmicpc.net/problem/2557), [~~1000~~](https://www.acmicpc.net/problem/1000), [~~2558~~](https://www.acmicpc.net/problem/2558), [~~10950~~](https://www.acmicpc.net/problem/10950), [~~10951~~](https://www.acmicpc.net/problem/10951), [~~10952~~](https://www.acmicpc.net/problem/10952), [~~10953~~](https://www.acmicpc.net/problem/10953), [~~11021~~](https://www.acmicpc.net/problem/11021), [~~11022~~](https://www.acmicpc.net/problem/11022), [~~11718~~](https://www.acmicpc.net/problem/11718), [~~11719~~](https://www.acmicpc.net/problem/11719), [~~11720~~](https://www.acmicpc.net/problem/11720), [~~11721~~](https://www.acmicpc.net/problem/11721), [~~2741~~](https://www.acmicpc.net/problem/2741), [~~2742~~](https://www.acmicpc.net/problem/2742), [~~2739~~](https://www.acmicpc.net/problem/2739), [~~1924~~](https://www.acmicpc.net/problem/1924), [~~8393~~](https://www.acmicpc.net/problem/8393), [~~10818~~](https://www.acmicpc.net/problem/10818), [~~2438~~](https://www.acmicpc.net/problem/2438), [~~2439~~](https://www.acmicpc.net/problem/2439), [~~2440~~](https://www.acmicpc.net/problem/2440), [~~2441~~](https://www.acmicpc.net/problem/2441), [~~2442~~](https://www.acmicpc.net/problem/2442), [~~2445~~](https://www.acmicpc.net/problem/2445), [~~2522~~](https://www.acmicpc.net/problem/2522), [~~2446~~](https://www.acmicpc.net/problem/2446), [~~10991~~](https://www.acmicpc.net/problem/10991), [~~10992~~](https://www.acmicpc.net/problem/10992)

### DP
[~~1463~~](https://www.acmicpc.net/problem/1463), [~~11726~~](https://www.acmicpc.net/problem/11726), [~~11727~~](https://www.acmicpc.net/problem/11727), [~~9095~~](https://www.acmicpc.net/problem/9095), [~~10844~~](https://www.acmicpc.net/problem/10844), [~~11057~~](https://www.acmicpc.net/problem/11057), [~~2193~~](https://www.acmicpc.net/problem/2193), [~~9465~~](https://www.acmicpc.net/problem/9465), [~~2156~~](https://www.acmicpc.net/problem/2156), [~~11053~~](https://www.acmicpc.net/problem/11053), [~~11055~~](https://www.acmicpc.net/problem/11055), [~~11722~~](https://www.acmicpc.net/problem/11722), [~~11054~~](https://www.acmicpc.net/problem/11054), [~~1912~~](https://www.acmicpc.net/problem/1912), [~~2579~~](https://www.acmicpc.net/problem/2579), [~~1699~~](https://www.acmicpc.net/problem/1699), [~~2133~~](https://www.acmicpc.net/problem/2133), [~~9461~~](https://www.acmicpc.net/problem/9461), [2225](https://www.acmicpc.net/problem/2225), [2011](https://www.acmicpc.net/problem/2011), [11052](https://www.acmicpc.net/problem/11052)
[~~1463~~](https://www.acmicpc.net/problem/1463), [~~11726~~](https://www.acmicpc.net/problem/11726), [~~11727~~](https://www.acmicpc.net/problem/11727), [~~9095~~](https://www.acmicpc.net/problem/9095), [~~10844~~](https://www.acmicpc.net/problem/10844), [~~11057~~](https://www.acmicpc.net/problem/11057), [~~2193~~](https://www.acmicpc.net/problem/2193), [~~9465~~](https://www.acmicpc.net/problem/9465), [~~2156~~](https://www.acmicpc.net/problem/2156), [~~11053~~](https://www.acmicpc.net/problem/11053), [~~11055~~](https://www.acmicpc.net/problem/11055), [~~11722~~](https://www.acmicpc.net/problem/11722), [~~11054~~](https://www.acmicpc.net/problem/11054), [~~1912~~](https://www.acmicpc.net/problem/1912), [~~2579~~](https://www.acmicpc.net/problem/2579), [~~1699~~](https://www.acmicpc.net/problem/1699), [~~2133~~](https://www.acmicpc.net/problem/2133), [~~9461~~](https://www.acmicpc.net/problem/9461), [~~2225~~](https://www.acmicpc.net/problem/2225), [2011](https://www.acmicpc.net/problem/2011), [11052](https://www.acmicpc.net/problem/11052)

### 기타
[2751](https://www.acmicpc.net/problem/2751), [11650](https://www.acmicpc.net/problem/11650), [11651](https://www.acmicpc.net/problem/11651), [10814](https://www.acmicpc.net/problem/10814), [10825](https://www.acmicpc.net/problem/10825), [10989](https://www.acmicpc.net/problem/10989), [11652](https://www.acmicpc.net/problem/11652), [11004](https://www.acmicpc.net/problem/11004), [10828](https://www.acmicpc.net/problem/10828), [9012](https://www.acmicpc.net/problem/9012), [10799](https://www.acmicpc.net/problem/10799), [10845](https://www.acmicpc.net/problem/10845), [10866](https://www.acmicpc.net/problem/10866), [10808](https://www.acmicpc.net/problem/10808), [10809](https://www.acmicpc.net/problem/10809), [10820](https://www.acmicpc.net/problem/10820), [2743](https://www.acmicpc.net/problem/2743), [11655](https://www.acmicpc.net/problem/11655), [10824](https://www.acmicpc.net/problem/10824), [11656](https://www.acmicpc.net/problem/11656), [1406](https://www.acmicpc.net/problem/1406), [1158](https://www.acmicpc.net/problem/1158), [1168](https://www.acmicpc.net/problem/1168), [10430](https://www.acmicpc.net/problem/10430), [2609](https://www.acmicpc.net/problem/2609), [1934](https://www.acmicpc.net/problem/1934), [1850](https://www.acmicpc.net/problem/1850), [9613](https://www.acmicpc.net/problem/9613), [11005](https://www.acmicpc.net/problem/11005), [2745](https://www.acmicpc.net/problem/2745), [1373](https://www.acmicpc.net/problem/1373), [1212](https://www.acmicpc.net/problem/1212), [2089](https://www.acmicpc.net/problem/2089), [11576](https://www.acmicpc.net/problem/11576), [1978](https://www.acmicpc.net/problem/1978), [1929](https://www.acmicpc.net/problem/1929), [6588](https://www.acmicpc.net/problem/6588), [11653](https://www.acmicpc.net/problem/11653), [10872](https://www.acmicpc.net/problem/10872), [1676](https://www.acmicpc.net/problem/1676), [2004](https://www.acmicpc.net/problem/2004)
Expand Down
14 changes: 7 additions & 7 deletions dp/r_파도반_수열.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package test.boj.dp;

import org.junit.*;
import org.junit.*;

import java.io.*;
import java.io.*;

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThat;

public class r_파도반_수열 {

Expand Down Expand Up @@ -38,10 +38,10 @@ public void test() {


// i 1 2 3 4 5 6 7 8 9 10 11
// dp[i] 1 1 1 2 2 3 4 5 7 9 12
// 1 1 1 2 2 2 + 1 3 + 1 4 + 1 5 + 2 7 + 2 9 + 3
// 1 1 1 2 2 dp[5] + dp[1..3] dp[6] + dp[1..3] dp[7] + dp[1..3] dp[8] + dp[4..5] dp[9] + dp[4..5] dp[10] + dp[6]
// -> dp[i - 1] + dp[i - 5] (i > 5)
// dp[i] 1 1 1 2 2 3 4 5 7 9 12
// 1 1 1 2 2 2 + 1 3 + 1 4 + 1 5 + 2 7 + 2 9 + 3
// 1 1 1 2 2 dp[5] + dp[1..3] dp[6] + dp[1..3] dp[7] + dp[1..3] dp[8] + dp[4..5] dp[9] + dp[4..5] dp[10] + dp[6]
// -> dp[i - 1] + dp[i - 5] (i > 5)
private static long solution(int N) {
long[] dp = new long[101];
dp[1] = 1;
Expand Down
73 changes: 73 additions & 0 deletions dp/s_합분해.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
package test.boj.dp;

import org.junit.*;

import java.io.*;
import java.util.StringTokenizer;

import static org.assertj.core.api.Assertions.assertThat;

public class s_합분해 {

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

String input = br.readLine();
StringTokenizer tokenizer = new StringTokenizer(input);
int N = Integer.parseInt(tokenizer.nextToken());
int K = Integer.parseInt(tokenizer.nextToken());
bw.write(String.valueOf(solution(N, K)));

br.close();
bw.flush();
bw.close();
}

@Test
public void test() {
assertThat(solution(20, 2))
.isEqualTo(21);
System.out.println(solution(2, 3));
}


// N = 1, K = 1 -> 1 -> 1
// N = 1, K = 2 -> 01, 11 -> 2
// N = 1, K = 3 -> 001, 010, 100 -> 3
// N = 1, K = 4 -> 0001, 0010, 0100, 1000 -> 4
//
//
// N = 2, K = 1 -> 1 -> 1
// N = 2, K = 2 -> 11, 02, 20 -> 3
// N = 2, K = 3 -> 011, 110, 020, 002, 200, 101 -> 6
//
// N = 3, K = 1 -> 1 -> 1
// N = 3, K = 2 -> 03, 30, 12, 21 - > 4
// N = 3, K = 3 -> 030, 003, 300, 012, 021, 102, 120, 201, 210, 111 -> 10
//
// N = 4, K = 1 -> 1 -> 1
// N = 4, K = 2 -> 04, 40, 13, 31, 22 -> 5
// N = 4, K = 3 -> 004, 040, 400, 013, 031, 130, 103, 022, 220, 202 -> 15

// 1 2 3 4
// 1 3(1+1) 6(3+3) 10(6+4)
// 1 4(1+3) 10(4+6) 20(10+10)
// 1 5(1+4) 15(5+10) 35(15+20)
// n = 0, dp[k][n] = 1
// n > 0, dp[k - 1][] = dp[n - 1][k]
private static int solution(int N, int K) {
int[][] dp = new int[N + 1][K + 1];
for (int i = 1; i <= K; i++) {
dp[1][i] = i;
}

for (int n = 2; n <= N; n++) {
for (int k = 1; k <= K; k++) {
dp[n][k] = (dp[n][k - 1] + dp[n - 1][k]) % 1_000_000_000;
}
}

return dp[N][K];
}
}

0 comments on commit 03c4a9e

Please sign in to comment.