반응형
이 문제는 브루트포스 알고리즘을 이용한다.
문제풀이
일단 이 문제는 모든 정수의 순서를 찾아 계산하는 방식으로 브루트포스 알고리즘을 이용해서 풀어보았다.
먼저 값들을 입력하고, 입력한 값들을 배열에 저장한다.
그 배열을 순열로써 저장 시킨다. 그렇게 되면 입력 1의 예시로 20 1 15 8 4 10의 값이 입력되면
값으로 저장이 된다. 이렇게 순열로 모든 경우의 수를 저장한다.
그 다음 순열마다 순열의 차이를 더해서 그 값이 기존의 최대값보다 크다면 최대값을 초기화한다.
모든 순열을 다 돌았다면 최종 최대값을 출력한다.
코드
from itertools import permutations
import sys
N = int(sys.stdin.readline())
per = permutations(list(map(int, sys.stdin.readline().split())), N)
rlt = 0
for i in per:
sum = 0
for j in range(len(i)-1): sum += abs(i[j]-i[j+1])
if sum > rlt: rlt = sum
print(rlt)
반응형
'문제풀이' 카테고리의 다른 글
11724번 연결 요소의 개수 (0) | 2021.08.20 |
---|---|
16953번 A -> B (0) | 2021.08.20 |
6987번 올림픽 (0) | 2021.08.13 |
6603번 로또 (0) | 2021.08.13 |
2156번 포도주 시식 (0) | 2021.08.13 |
댓글