https://www.acmicpc.net/problem/10819
10819번: 차이를 최대로첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.www.acmicpc.net
오우야
그냥 노가다문제이다.
먼져, 배열에 들어있는 수로 만들수 있는, 길이가 n인 모든 배열을 구한다.
그모든 배열에 대해서 |A[0] - A[1]| + |A[1] - A[2]| + … + |A[N-2] - A[N-1]|를 구한다.
최댓값을 찾는다.
근데 거의 처음구현해봐서 좀 빡셌다.
근데 노가다라서 어렵지는 않았다.
def dfs(arr): if len(answer_list)==n: count(answer_list) return
for i in range(n): if not visited[i]:
answer_list.append(arr[i]) visited[i]=True
dfs(arr) answer_list.pop() visited[i]=False
def count(arr): global answer tmp=0 for i in range(n-1):
tmp += abs(arr[i]-arr[i+1]) if tmp>answer: answer=tmp
return
###########################################################n=int(input())
arr=[*map(int,input().split())]##함수용answer_list=[]
visited=[False for _ in range(n)]answer=0###dfs(arr)print(answer)