There was an error while loading. Please reload this page.
1 parent b77804d commit 1e0bf2cCopy full SHA for 1e0bf2c
1 file changed
leetcode3/최민지/312_Burst_Balloons.py
@@ -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