Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

justsicklife

16198번: 에너지 모으기 파이썬 본문

알고리즘

16198번: 에너지 모으기 파이썬

구슬탈출 2023. 8. 6. 21:54

유형은 백트래킹

N = int(input())
arr = list(map(int,(input().split())))

result = 0

def dfs(v,c):

    global result
	# 배열이 두칸남았을 경우 
    # 맨왼쪽 오른쪽은 지울수없으므로 이렇게한다
	if N-2 == c:
        result = max(result,v)
        return
    
    for i in range(1,len(arr) - 1):
		# 지울 인덱스 번호 양옆을 곱을 구한다.
        value = arr[i-1] * arr[i+1]
        # 삭제한값을 다시 복구 하기위해 변수로 선언한다
        rollback = arr[i]
        # i번째에 있는 요소를 삭제한다.
        del arr[i]
        dfs(value+v,c+1)
        # 삭제한 요소를 다시 복구한다.
        arr.insert(i,rollback)

dfs(0,0)
print(result)

'알고리즘' 카테고리의 다른 글

백준 1987 파이썬  (0) 2023.08.18
백준 7490 파이썬  (0) 2023.08.16
프로그래머스 타겟 넘버 파이썬  (0) 2023.08.13
백준 18428번: 감시 피하기 파이썬  (0) 2023.08.09
프로그래머스 모의고사 파이썬  (0) 2023.08.01