728x90
728x90
16198번: 에너지 모으기
N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있
www.acmicpc.net
풀이 과정
1. 주어진 n의 개수가 너무나 작기 때문에 모든 경우의 수를 구해주면 된다.
2. i번째를 삭제할 경우의 현재 에너지양 + w[i-1] * w[i+1], i번째를 제외한 w 배열, depth - 1로 탐색을 한다.
3. depth 가 3일 될 경우 경우의 수가 배열의 맨앞의 에너지 값 * 배열의 마지막 에너지 값만 계산 할 수 있기 때문에 해당 값과 현재 에너지를 더해서 반환해준다.
4. 가장 큰 값을 반환해준다.
풀이 코드
import sys; input = sys.stdin.readline
n = int(input())
W = list(map(int,input().split()))
def dfs(sum,w,depth) :
if depth == 3 :
return sum + (w[0] * w[-1])
ret = sum
for i in range(1,depth-1) :
ret = max(ret,dfs(sum + w[i-1] * w[i+1],w[0:i] + w[i+1:],depth - 1))
return ret
print(dfs(0,W,n))
728x90
728x90
'Language > Python' 카테고리의 다른 글
[Python][백준 23843][우선순위 큐,정렬] 콘센트 - 컴도리돌이 (0) | 2022.05.29 |
---|---|
[파이썬][백준 18430][백트래킹] 무기공학 - 컴도리돌이 (0) | 2022.05.24 |
[파이썬][백준 14501][그리디] 퇴사 - 컴도리돌이 (0) | 2022.04.25 |
[파이썬][백준 1082][DP][그리디] 방 번호 - 컴도리돌이 (0) | 2022.04.24 |
[파이썬][백준 2493][스택] 탑 - 컴도리돌이 (0) | 2022.04.23 |