순열 구현하여 문제를 풀었다.
https://www.acmicpc.net/problem/10819
import sys; input = sys.stdin.readline
n = int(input())
arr = list(map(int, input().split()))
lst = [0] * n
ans = 0
visited = [False] * n
def recur2(cur):
global ans
# 이 위치에 1을 썼다 낭패를 보았다.
if cur == n: # 문제 조건 상n 개가 다 나열되고 써야한다.
tmp = 0 # 1
for i in range(n - 1): # 1
tmp += abs(lst[i] - lst[i + 1]) # 1
ans = max(ans, tmp) # 1
return
for i in range(n):
if visited[i]:
continue
lst[cur] = arr[i]
visited[i] = True
recur2(cur+1)
visited[i] = False
recur2(0)
print(ans)
모듈도 이용해 봤다.
import sys; input = sys.stdin.readline
from itertools import permutations
n = int(input())
arr = list(map(int, input().split()))
lst = list(permutations(arr))
ans = 0
for i in range(len(lst)):
tmp = 0
for j in range(n-1):
tmp += abs(lst[i][j] - lst[i][j+1])
ans = max(ans, tmp)
print(ans)