Skip to content

Commit 1e0bf2c

Browse files
committed
Day18
1 parent b77804d commit 1e0bf2c

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
def maxCoins(self, nums: List[int]) -> int:
3+
# 1. 양 끝에 가상 풍선 1 추가 및 길이 정의
4+
A = [1] + nums + [1]
5+
n = len(A)
6+
7+
# 2차원 dp 테이블 초기화 (dp[i][j] 사이의 풍선들을 모두 터뜨렸을 떄의 최대 점수 )
8+
dp = [[0] * n for _ in range(n)]
9+
10+
# 구간의 길이(length)를 2부터 n-1까지 늘려가며 계산
11+
for length in range(2, n):
12+
for left in range(0, n-length):
13+
right = left + length
14+
15+
# left와 right의 사이에서 '가장 마지막으로 터뜨릴 풍선 k'를 탐색
16+
for k in range(left + 1, right):
17+
coins = dp[left][k] + dp[k][right] + (A[left] * A[k] * A[right])
18+
19+
if coins > dp[left][right]:
20+
dp[left][right] = coins
21+
22+
return dp[0][n-1]

0 commit comments

Comments
 (0)