Skip to content

Commit 1b6ff59

Browse files
committed
feat: 백준 2240
1 parent 7797b43 commit 1b6ff59

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

src/week03/Unoguna/BOJ_2240.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package week03.Unoguna;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
7+
public class BOJ_2240 {
8+
9+
public static void main(String[] args) throws IOException {
10+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
11+
StringBuilder sb = new StringBuilder();
12+
13+
String[] TW = (br.readLine()).split(" ");
14+
int T = Integer.parseInt(TW[0]);
15+
int W = Integer.parseInt(TW[1]);
16+
17+
//dp[w][t]에는 자두가 t번 떨어지는 동안 w번 위치를 바꿨을 때 얻을 수 있는 자두의 최대 개수.
18+
int[][] dp = new int[W + 1][T + 1];
19+
20+
//t=0인 경우 자두가 한번도 떨어지지 않았기 때문에 + index가 -1이 되기 때문에 고려X
21+
for(int t = 1; t <= T; t++){
22+
int drop_idx = Integer.parseInt(br.readLine());
23+
24+
//w=0인 경우는 index가 -1이 될 수 있기 때문에 따로 계산
25+
if(drop_idx == 1) dp[0][t] = dp[0][t - 1] + 1; //1번 나무에 자두가 떨어짐
26+
else dp[0][t] = dp[0][t-1]; //2번 나무에 자두가 떨어짐
27+
28+
//자두가 t번 떨어졌을 때 자두는 최대 min(t, W)번 움직일 수 있다.
29+
int max_w=Math.min(t, W);
30+
for(int w = 1; w <= max_w; w++){
31+
//점화식
32+
if(drop_idx == 1){ //1번 나무에 자두가 떨어짐
33+
if(w%2 == 0){ //자두의 현재 위치에 자두가 떨어질 때
34+
dp[w][t] = Math.max(dp[w][t-1], dp[w-1][t-1]) + 1;
35+
}
36+
else{ //현재 위치에 자두가 떨어지지 않았을 때
37+
dp[w][t] = Math.max(dp[w][t-1], dp[w-1][t-1]);
38+
}
39+
}
40+
else{ //2번 나무에 자두가 떨어짐
41+
if(w%2 == 1){ //자두의 현재 위치에 자두가 떨어질 때
42+
dp[w][t] = Math.max(dp[w][t-1], dp[w-1][t-1]) + 1;
43+
}
44+
else{ //현재 위치에 자두가 떨어지지 않았을 때
45+
dp[w][t] = Math.max(dp[w][t-1], dp[w-1][t-1]);
46+
}
47+
}
48+
}
49+
}
50+
51+
//자두가 다 떨어졌을 때 얻을 수 있는 자두의 최대 개수 계산
52+
int answer = 0;
53+
for(int w=0; w<W+1; w++){
54+
answer = Math.max(answer, dp[w][T]);
55+
}
56+
57+
System.out.println(answer);
58+
}
59+
}

0 commit comments

Comments
 (0)