본문 바로가기
문제풀이

10819번 차이를 최대로

by 이숴 2021. 8. 20.
반응형

이 문제는 브루트포스 알고리즘을 이용한다.

 

문제풀이

일단 이 문제는 모든 정수의 순서를 찾아 계산하는 방식으로 브루트포스 알고리즘을 이용해서 풀어보았다.

먼저 값들을 입력하고, 입력한 값들을 배열에 저장한다.

그 배열을 순열로써 저장 시킨다. 그렇게 되면 입력 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

댓글