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

resilient

·

2021. 7. 12. 13:54

728x90
반응형

https://www.acmicpc.net/problem/10819

 

10819번: 차이를 최대로

첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.

www.acmicpc.net

  • 먼저 입력 값을 받고 permutations함수를 이용하여 n개로 묶을 수 있는 경우의 수를 모두 구해서 리스트로 만들어준다.
  • 구한 경우의 리스트들을 for문을 통해 탐색하면서 이전 숫자에서 현재 숫자를 뺀 값을 절댓값을 씌워서 ans에 각각 더해준다.
  • 경우의 리스트들을 모두 탐색하면서 ans의 최대값을 계속 해서 갱신한다.
import sys
from itertools import permutations
input = sys.stdin.readline

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

data_list = list(permutations(data,n))
result = 0
for i in range(len(data_list)):
    ans = 0
    for j in range(1,len(data_list[i])):
        ans += abs(data_list[i][j-1] - data_list[i][j])
    result = max(ans,result)

print(result)
반응형