개발바닥

BOJ_16198 [ 에너지 모으기 ] [ 파이썬 ] 본문

[ Algorithm ]/[ PYTHON ]

BOJ_16198 [ 에너지 모으기 ] [ 파이썬 ]

라이언 2020. 5. 23. 13:02
반응형

문제

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

 

16198번: 에너지 모으기

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

www.acmicpc.net

문제 해결 방법

처음 그리디로 접근했다가 틀렸다..

이 문제는 구슬의 개수가 최대 10개이므로 브루트포스로 접근을 해야 된다.

모든 경우의 수를 계산하면 해결할 수 있다.

소스 코드 보기

https://github.com/jokerKwu/BOJ_Algorithm/blob/master/python/BOJ_16198.py

 

jokerKwu/BOJ_Algorithm

Contribute to jokerKwu/BOJ_Algorithm development by creating an account on GitHub.

github.com

import sys
N = sys.stdin.readline()
arr = list(map(int, sys.stdin.readline().split()))
answer = 0
def select(value):
    if len(arr) == 2:
        global answer
        if answer < value:
            answer = value
            return 0
    for i in range(1,len(arr)-1):
        value += (arr[i-1]*arr[i+1])
        tmp = arr[i]
        del arr[i]
        select(value)
        arr.insert(i,tmp)
        value -= (arr[i-1]*arr[i+1])

select(0)
print(answer)


 

반응형
Comments