728x90
728x90
https://www.acmicpc.net/problem/1932
1932번: 정수 삼각형
첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.
www.acmicpc.net
난이도: solved.ac 실버 1
알고리즘 분류
다이나믹 프로그래밍 (dp)
접근 방법
맨 윗 칸부터 아래로 내려가면서 선택한 수의 합이 최대가 되어야 한다
arr[i][j]를 선택할 때, arr[i-1][j-1] 와 arr[i-1][j]를 선택했을 때 중 합이 더 큰 걸 골라야 한다
#include <bits/stdc++.h> using namespace std; int previ[501], pres[501]; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, i, k; cin >> n; for (k = 1; k <= n; k++) { for (i = 1; i <= k; i++) { cin >> pres[i]; pres[i] = max(previ[i - 1], previ[i]) + pres[i]; } copy(begin(pres), end(pres), begin(previ)); } cout << *max_element(begin(pres),end(pres)); }

반응형