백준 10819 - 차이를 최대로 (파이썬/python)

문제 링크 : https://www.acmicpc.net/problem/10819

🍰 문제요약

첫째 줄에 N (3 ≤ N ≤ 8)이 주어지고, 둘째 줄에 배열 A에 들어있는 정수가 주어진다.
다음 식으로 최대값을 구하려 할 때, 그 최대값을 출력하기.
A[0]A[1]+A[1]A[2]+...+A[N2]A[N1]|A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]|

🍰 풀이

N 제한이 최대 8이다. 순열을 사용해서 문제를 풀어도 시간제한에 걸리지 않는다.

🍒 코드

from itertools import permutations

n = int(input())
nums = list(map(int,input().split()))

res = 0
for per in permutations(nums):
  temp = 0
  for i in range(n-1) :
    temp += abs(per[i]-per[i+1])
  res = max(res,temp)

print(res)

좋은 웹페이지 즐겨찾기