문제
풀이
주어진 배열에서 구할 수 있는 순열을 모두 구한 뒤, 각 순열에 식을 적용하여 최댓값을 구한다.
코드
import sys, itertools
def cal_max(candi):
result = 0
for i in range(1, len(candi)):
result += abs(candi[i-1] - candi[i])
return result
n = int(sys.stdin.readline().strip())
arr = [int(x) for x in sys.stdin.readline().split()]
candis = list(itertools.permutations(arr, n))
MAX = float('-inf')
for candi in candis:
num = cal_max(candi)
if num > MAX:
MAX = num
print(MAX)
'CS > 알고리즘 문제 풀이' 카테고리의 다른 글
[백준] 1780 - 종이의 개수 [Python(파이썬)] (0) | 2021.01.23 |
---|---|
[백준] 11279 - 최대힙 [Python(파이썬)] (0) | 2021.01.23 |
[백준] 1929 - 소수구하기 [Python(파이썬)] (0) | 2021.01.23 |
[백준] 1949 - 우수 마을 [Python(파이썬)] (0) | 2021.01.20 |
[백준] 1991 - 트리순회 [Python(파이썬)] (0) | 2021.01.20 |