https://www.acmicpc.net/problem/10819
n = int(input())
arr = list(map(int, input().split()))
s = []
maxValue = 0
def dfs():
global maxValue
if len(s) == n: # 리스트에 저장된 정수의 개수가 n 일때
total = 0
for x in range(1, n): # 최대값을 구해준다
total += abs(arr[s[x-1]] - arr[s[x]])
maxValue = max(maxValue, total)
else:
for idx in range(n): # idx 0부터 ~ n까지 (값 중복 가능)
if idx not in s:
s.append(idx)
dfs()
s.pop()
dfs()
print(maxValue)
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 12015번 가장 긴 증가하는 부분수열2 - 이분탐색, LIS (0) | 2022.09.14 |
---|---|
[백준] 10815번 숫자카드 - 이분탐색 (0) | 2022.09.13 |
[백준] 14888번 연산자 끼워넣기 - dfs, 백트래킹 (0) | 2022.09.12 |
[백준] 14889번 스타트와 링크 - dfs, 백트래킹 (0) | 2022.09.12 |
[백준] 2798번 블랙잭 - dfs, 백트래킹 (0) | 2022.09.11 |