(BOJ)차이를 최대로 10819

차이를 최대로

8. 차이를 최대로

  • N개의 정수로 이루어진 배열 A가 주어진다. 이 때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성
  • A[0]-A[1] + A[1] - A[2] + … + A[N-2] - A[N-1]
  • 첫째 줄에 N(3<=N<=8)이 주어진다.

  • 규칙이 뭘까. 없는 것 같다. -> 모든 순열을 구해서 최댓값이 가장 큰 걸 출력한다.
  • 내부 라이브러리 사용하자.
from itertools import permutations as pe
from sys import stdin
input = stdin.readline
T = int(input())
arr = map(int, input().split())

MAX = 0
for i in pe(arr):
    result = 0
    for j in range(len(i)-1):
        result += abs(i[j] - i[j+1])
        # print(i[j], i[j +1], abs(i[j]-i[j+1]))
    if result > MAX:
        MAX = result
print(MAX)

참고자료

코드플러스

0%