반응형
#include <bits/stdc++.h>
using namespace std;
int arr[502][502];
int d[502][502];
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j <= i; j++) {
cin >> arr[i][j];
}
}
d[0][0] = arr[0][0];
for (int i = 1; i <= n; i++) {
for (int j = 0; j <= i; j++) {
if (j == 0) d[i][j] = d[i - 1][j] + arr[i][j];
else if (i == j) d[i][j] = d[i - 1][j - 1] + arr[i][j];
else {
d[i][j] = max(d[i - 1][j - 1], d[i - 1][j]) + arr[i][j];
}
}
}
cout << *max_element(d[n], d[n] + n);
}
# TIP
dp관점으로 생각할 것
자꾸 앞선 수에서 생각을 못하고 그 전 수에 관점을 두는 방식을 버려야함..
반응형
'Algorithm > BOJ [C++]' 카테고리의 다른 글
| [BOJ] 1920. 수 찾기 - C++ (0) | 2026.01.02 |
|---|---|
| [BOJ] 2847. 게임을 만든 동준이 - C++ (0) | 2026.01.01 |
| [BOJ] 1003. 피보나치 함수 - C++ (1) | 2025.08.21 |
| [BOJ] 2941. 크로아티아 알파벳 - C++ (0) | 2025.08.09 |
| [BOJ] 15651. N과 M (3) - C++ (0) | 2025.08.02 |