반응형
https://www.acmicpc.net/problem/10819
10819번: 차이를 최대로
첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.
www.acmicpc.net
from itertools import permutations
n = int(input())
array = list(map(int, input().split()))
max_num = 0
for A in permutations(array, n):
sum_value = 0
for i in range(1, n):
sum_value += abs(A[i]-A[i-1])
max_num = max(max_num, sum_value)
print(max_num)
itertools
의 permuations
라이브러리를 이용하여 입력으로 들어오는 array
로 만들 수 있는 배열의 모든 경우의 수를 구하였습니다.
모든 경우의 수를 순회하면서 문제에서 주어진 식을 이용하여 sum_value
를 구합니다.
식 : |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]|
경우의 수 하나의 순회를 마쳤다면 max
함수를 이용하여 sum_value
와 max_num
중 더 큰 값을 max_num
으로 저장합니다.
모든 경우의 수를 확인했다면 max_num
은 최댓값을 저장했을 것입니다.
max_num
을 결과로 반환합니다.
반응형
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 숫자 변환하기 파이썬(Python) (0) | 2023.03.21 |
---|---|
[코딩테스트] 프로그래머스 예상 대진표 파이썬(Python) (1) | 2023.03.20 |
[코딩테스트] 프로그래머스 [3차] 파일명 정렬 파이썬(Python) (0) | 2023.03.17 |
[코딩테스트] 프로그래머스 땅따먹기 파이썬(Python) (0) | 2023.03.16 |
[코딩테스트] 프로그래머스 조건에 맞는 사용자 정보 조회하기 MySQL (0) | 2023.03.14 |