Menu
CoddyTech

Burst Balloons

어려움동적 계획법python iconjava iconcpp iconc iconjs icon+10

nums로 풍선이 일렬로 주어집니다. 여기서 nums[i]는 i번째 풍선에 적힌 숫자입니다. 풍선을 임의의 순서로 한 번에 하나씩 모두 터뜨립니다. 풍선 하나를 터뜨리면 left × nums[i] × right개의 코인을 얻습니다. 여기서 left와 right는 현재 그 풍선의 이웃, 즉 줄에서 양쪽으로 가장 가까이 있는 풍선에 적힌 숫자입니다. 이웃이 없으면 1로 간주합니다. 풍선을 터뜨린 후에는 양쪽 이웃이 서로 인접하게 됩니다. 모을 수 있는 최대 코인 수를 반환하세요.

함수

maxCoins(nums: integer-array) → integer
numsinteger-array
왼쪽에서 오른쪽 순서로 풍선에 적힌 숫자들
반환값integer
모든 풍선을 터뜨려 모을 수 있는 최대 코인 수

제약 조건

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • 답은 3 × 108보다 작으므로 32비트 부호 있는 정수에 들어갑니다.

예제

입력
nums = [2, 4, 3]
출력
33
설명
4를 터뜨려 2 × 4 × 3 = 24를 얻습니다. 이제 3 옆에 있는 2는 1 × 2 × 3 = 6을 얻고, 3은 3을 얻습니다. 총 33입니다.
challenge icon

후속 질문

가장 많은 코인을 얻는 버스팅 순서도 하나 반환해 주실 수 있나요?

코드 초기화
def maxCoins(nums):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

nums = [2, 4, 3]

예상 출력

33