본문 바로가기
Algorithm/baekjoon

[파이썬]baekjoon 16198: 에너지 모으기

by 갈잃자 2023. 2. 9.

https://www.acmicpc.net/problem/16198

 

16198번: 에너지 모으기

N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있

www.acmicpc.net


재귀를 통해 푸는 문제

 

완전탐색을 이용해야 함..

 

처음엔 좌 우 가장 큰 것으로 해서 뽑았더니 반례에서 걸렸다...

 

답은 완전탐색으로 최댓값을 구하야함?

n = int(input())
arr = list(map(int,input().split()))
Max = 0
lst = []

def dfs(level):
    global Max
    if len(arr) ==2:
        if Max < level:
            Max = level
        return

    if len(arr) >=3:
        for i in range(1,len(arr)-1):
            energy = arr[i-1] * arr[i+1]

            now = arr.pop(i)
            dfs(level + energy)
            arr.insert(i,now)
dfs(0)
print(Max)


 

댓글