Skip to content

Commit 6b0b614

Browse files
authored
Merge pull request #259 from jiminnimij/main
[0305] 10844번 - 쉬운 계단 수
2 parents affaeef + feb57e1 commit 6b0b614

4 files changed

Lines changed: 159 additions & 0 deletions

File tree

src/Problem10844.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import java.io.InputStreamReader;
2+
import java.io.OutputStreamWriter;
3+
import java.io.BufferedReader;
4+
import java.io.BufferedWriter;
5+
import java.io.IOException;
6+
7+
public class Problem10844 {
8+
public static void main(String[] args) throws IOException {
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
11+
12+
int n = Integer.parseInt(br.readLine());
13+
long MOD = 1_000_000_000;
14+
15+
long[][] dp = new long[n+1][10];
16+
17+
for(int i=1;i<=9;i++) dp[1][i] = 1;
18+
19+
for(int i=2;i<=n;i++){
20+
dp[i][0] = dp[i-1][1];
21+
dp[i][9] = dp[i-1][8];
22+
23+
for(int j=1;j<=8;j++){
24+
dp[i][j] = (dp[i-1][j-1] + dp[i-1][j+1]) % MOD;
25+
}
26+
}
27+
28+
long ans = 0;
29+
for(int i=0;i<=9;i++){
30+
ans = (ans + dp[n][i]) % MOD;
31+
}
32+
33+
bw.write(String.valueOf(ans));
34+
bw.flush();
35+
bw.close();
36+
37+
}
38+
}

src/Problem15486.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.io.InputStreamReader;
2+
import java.io.OutputStreamWriter;
3+
import java.io.BufferedReader;
4+
import java.io.BufferedWriter;
5+
import java.io.IOException;
6+
import java.util.StringTokenizer;
7+
8+
public class Problem15486 {
9+
public static void main(String[] args) throws IOException {
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
12+
13+
int n = Integer.parseInt(br.readLine());
14+
int[] t = new int[n];
15+
int[] p = new int[n];
16+
int[] dp = new int[n + 1];
17+
18+
for (int i = 0; i < n; i++) {
19+
StringTokenizer st = new StringTokenizer(br.readLine());
20+
t[i] = Integer.parseInt(st.nextToken());
21+
p[i] = Integer.parseInt(st.nextToken());
22+
}
23+
24+
dp[n] = 0;
25+
26+
for (int i = n-1; i > -1; i--) {
27+
if (t[i] + i > n) {
28+
dp[i] = dp[i + 1];
29+
}
30+
else {
31+
dp[i] = Math.max(dp[i + t[i]] + p[i], dp[i + 1]);
32+
}
33+
}
34+
35+
bw.write(String.valueOf(dp[0]));
36+
bw.flush();
37+
bw.close();
38+
}
39+
}

src/Problem2240.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import java.io.InputStreamReader;
2+
import java.io.OutputStreamWriter;
3+
import java.io.BufferedWriter;
4+
import java.io.BufferedReader;
5+
import java.io.IOException;
6+
import java.util.StringTokenizer;
7+
8+
public class Problem2240 {
9+
public static void main(String[] args) throws IOException {
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
12+
13+
StringTokenizer st = new StringTokenizer(br.readLine());
14+
int t = Integer.parseInt(st.nextToken());
15+
int w = Integer.parseInt(st.nextToken());
16+
int max = 0;
17+
18+
int[][][] dp = new int [w + 1][t + 1][2];
19+
int[] arr = new int[t + 1];
20+
arr[0] = 1;
21+
dp[0][0][0] = 0;
22+
23+
for (int i = 1; i <= t; i++) {
24+
arr[i] = Integer.parseInt(br.readLine());
25+
dp[0][i][0] = 0;
26+
dp[0][i][1] = 0;
27+
}
28+
29+
for (int i = 1; i < t + 1; i++) {
30+
dp[0][i][0] = dp[0][i - 1][0] + (arr[i] == 1 ? 1 : 0);
31+
32+
for(int j = 1; j < Math.min(i + 1, w + 1) ; j++ ) {
33+
for(int k = 0; k < 2; k++) {
34+
dp[j][i][k] = Math.max(dp[j][i - 1][k], dp[j - 1][i - 1][1 - k]) + (k + 1 == arr[i] ? 1 : 0);
35+
36+
if (max < dp[j][i][k]) {
37+
max = dp[j][i][k];
38+
}
39+
}
40+
}
41+
}
42+
43+
bw.write(String.valueOf(max));
44+
bw.flush();
45+
bw.close();
46+
}
47+
}

src/Problem2748.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import java.io.BufferedReader;
2+
import java.io.BufferedWriter;
3+
import java.io.InputStreamReader;
4+
import java.io.OutputStreamWriter;
5+
import java.io.IOException;
6+
7+
public class Problem2748 {
8+
public static void main(String[] args) throws IOException{
9+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
10+
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
11+
12+
int n = Integer.parseInt(br.readLine());
13+
14+
long dp1 = 0;
15+
long dp2 = 1;
16+
17+
if (n == 0) {
18+
bw.write(String.valueOf(dp1));
19+
}
20+
else if (n == 1) {
21+
bw.write(String.valueOf(dp2));
22+
}
23+
else {
24+
for (int i = 2; i <= n; i++) {
25+
long temp = dp2;
26+
dp2 = dp1 + dp2;
27+
dp1 = temp;
28+
}
29+
bw.write(String.valueOf(dp2));
30+
}
31+
32+
bw.flush();
33+
bw.close();
34+
}
35+
}

0 commit comments

Comments
 (0)