n = int(input())
array = list(map(int, input().split()))
visited = [0 for i in range(n)]
answer = 0
new_array = []
def dfs(cnt, new_array):
global answer
if cnt == n:
answer = max(answer, sum(abs(new_array[i]-new_array[i+1]) for i in range(n-1)))
return
for i in range(n):
if visited[i]: #방문한 곳이라면?
continue
visited[i] = 1
new_array.append(array[i])
dfs(cnt + 1, new_array)
visited[i] = 0
new_array.pop()
dfs(0, new_array)
print(answer)
기억해야 할 부분
방문처리 체크, for문 i값 돌아가는 거 체크!
'여니의 취준 준비 > 코딩테스트 (Python)' 카테고리의 다른 글
[n14502] 연구소 in python (0) | 2021.10.12 |
---|---|
[n14888] 연산자 끼워넣기 in python (0) | 2021.10.12 |
[n1535] 안녕 in python (배낭문제) (0) | 2021.10.12 |
[n9461] 파도반 수열 in python (0) | 2021.10.09 |
[n1063] 킹 in python (0) | 2021.10.08 |