Skip to content

Commit a6eea91

Browse files
committed
[Silver I] Title: 정수 삼각형, Time: 120 ms, Memory: 111668 KB -BaekjoonHub
1 parent 5f03379 commit a6eea91

File tree

2 files changed

+48
-0
lines changed

2 files changed

+48
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# [Silver I] 정수 삼각형 - 1932
2+
3+
[문제 링크](https://www.acmicpc.net/problem/1932)
4+
5+
### 성능 요약
6+
7+
메모리: 111668 KB, 시간: 120 ms
8+
9+
### 분류
10+
11+
다이나믹 프로그래밍
12+
13+
### 제출 일자
14+
15+
2025년 4월 14일 18:35:01
16+
17+
### 문제 설명
18+
19+
<pre> 7
20+
3 8
21+
8 1 0
22+
2 7 4 4
23+
4 5 2 6 5</pre>
24+
25+
<p>위 그림은 크기가 5인 정수 삼각형의 한 모습이다.</p>
26+
27+
<p>맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다.</p>
28+
29+
<p>삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 모두 정수이며, 범위는 0 이상 9999 이하이다.</p>
30+
31+
### 입력
32+
33+
<p>첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다.</p>
34+
35+
### 출력
36+
37+
<p>첫째 줄에 합이 최대가 되는 경로에 있는 수의 합을 출력한다.</p>
38+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
n = int(input())
2+
A = [list(map(int, input().split())) for _ in range(n)]
3+
4+
for i in range(1, n):
5+
for j in range(i + 1):
6+
if j == 0: A[i][j] += A[i-1][j]
7+
elif j == i: A[i][j] += A[i-1][j-1]
8+
else: A[i][j] += max(A[i-1][j-1], A[i-1][j])
9+
10+
print(max(A[n-1]))

0 commit comments

Comments
 (0)