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

 

10819번: 차이를 최대로

첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.

www.acmicpc.net

 

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)

+ Recent posts