https://www.acmicpc.net/problem/10819
: 배열에 들어있는 수의 순서를 적절히 바꿔서 얻을 수 있는 식의 최댓값
N = int(input())
array = list(map(int,input().split()))
visited = [False]*N
maxAns = 0
def dfs(newarr):
global maxAns
if len(newarr) == N :
NewSum = 0
for i in range(N-1):
NewSum += abs(newarr[i] - newarr[i+1])
maxAns = max(maxAns, NewSum)
return
for i in range(N):
if not visited[i]:
visited[i] = True
newarr.append(array[i])
dfs(newarr)
visited[i] = False
newarr.pop()
dfs([])
print(maxAns)
아래는 틀린 코드입니다
for i in range(N):
if not visited[i]:
visited[i] = True
newarr.append(array[i])
dfs(newarr)
visited[i] = False
newarr.remove(array[i])