
문제 연결 https://www.acmicpc.net/problem/1932
단추
- 프로그래머 문제와 정확히 같은 문제입니다. https://everydayyy.96
- 가장 왼쪽이면, 맨 오른쪽이면, 그렇지 않다면 총 3가지 경우를 생각해서 더해보세요.
암호
|
하나
2
삼
4
5
6
7
8일
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#포함하다<iostream>
#포함하다<벡터>
#포함하다<연산>
#포함하다<대기줄>
#포함하다<cstring>
#포함하다<선>
사용 네임스페이스 기본;
내부 N;
내부 알(501)(501);
내부 DP(501)(501);
내부 답변;
내부 주로() {
친 >> N;
~을 위한 (내부 나 = 0; 나 < N; 나++) {
~을 위한 (내부 제이 = 0; 제이 <= 나; 제이++) {
친 >> arr(i)(j);
}
}
// dp 배열 초기화
DP(0)(0) = 알(0)(0);
DP(하나)(0) = 알(하나)(0);
DP(하나)(하나) = 알(하나)(하나);
~을 위한 (내부 나 = 하나; 나 < N; 나++) {
~을 위한 (내부 제이 = 0; 제이 <= 나; 제이++) {
만약에 (제이 == 0) { // 가장 왼쪽
dp(i)(j) = DP(즉 – 하나)(제이) + arr(i)(j);
}
다른 만약에 (제이 == N–하나) { // 맨 오른쪽
dp(i)(j) = DP(즉 – 하나)(제이–하나) + arr(i)(j);
}
다른 { //유지하다
dp(i)(j) = 최대(dp(나는 – 하나)(제이 – 하나), dp(i – 하나)(제이)) + arr(i)(j);
}
}
}
~을 위한 (내부 나 = 0; 나 < N; 나++) {
답변 = 최대(대답, dp(n – 하나)(나));
}
쿠우트 << 답변;
}
|
CS |