-
[BOJ] 1932 정수 삼각형PS/BOJ 2020. 7. 16. 20:14
https://www.acmicpc.net/problem/1932
1932번: 정수 삼각형
문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최�
www.acmicpc.net
알고리즘: DP
시간복잡도: O(N^2)
접근:
1. 이전 값들을 참고하면서 갱신하는 것이므로 Dynamic 문제
$$D[k]=MAX(D[k-i-1],\ D[k-i])+a_k$$
주의) 각 층의 양 끝점은 한 쪽 대각선이 없으므로 이를 예외 처리해줘야 함.
더보기#include<stdio.h> int main() { int N, a, i, j, k, D[500*500], max = 0; scanf("%d", &N); scanf("%d", &D[0]); k = 1; max = D[0]; for (i = 1; i < N; i++) { scanf("%d", &a); D[k] = D[k-i] + a; if (max < D[k]) max = D[k]; k++; for (j = 1; j < i; j++) { scanf("%d", &a); D[k] = D[k-i-1] + a; if (D[k] < D[k-i] + a) D[k] = D[k-i] + a; if (max < D[k]) max = D[k]; k++; } scanf("%d", &a); D[k] = D[k-i-1] + a; if (max < D[k]) max = D[k]; k++; } printf("%d", max); }
'PS > BOJ' 카테고리의 다른 글
[BOJ] 2038 골롱 수열 (0) 2020.07.17 [BOJ] 1987 알파벳 (0) 2020.07.17 [BOJ] 1912 연속합 (0) 2020.07.16 [BOJ] 1904 01타일 (0) 2020.07.16 [BOJ] 1806 부분합 (0) 2020.07.16