반응형
문제
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
위 그림은 크기가 5인 정수 삼각형의 한 모습이다.
맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다.
삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이며, 범위는 0 이상 9999 이하이다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int arr[501][501];
int main(){
int n;
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < i + 1; j++)
cin >> arr[i][j];
for (int i = n - 1; i >= 1; i--)
for (int j = 0; j < i; j++)
arr[i - 1][j] += max(arr[i][j], arr[i][j + 1]);
cout << arr[0][0];
return 0;
}
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[ C / C++ ] 백준 1992 쿼드트리 (0) | 2022.02.28 |
---|---|
[ C / C++ ] 백준 1978 소수 찾기 (0) | 2022.02.27 |
[ C / C++ ] 백준 1904 01타일 (0) | 2022.02.25 |
[ C / C++ ] 백준 1890 점프 (0) | 2022.02.24 |
[ C / C++ ] 백준 1759 암호 만들기 (0) | 2022.02.23 |