본문 바로가기

코딩/Python

[Python] 백준 10819 차이를 최대로

반응형

10819번: 차이를 최대로 (acmicpc.net)

 

10819번: 차이를 최대로

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

www.acmicpc.net

 

코드 작성

from itertools import permutations

n = int(input())
arr = list(map(int, input().split()))
ans = 0
for per in permutations(arr): #2
    temp = 0
    for i in range(n-1):
        temp += abs(per[i] - per[i+1])
        ans = max(ans, temp)
print(ans)

코드  풀이

#1. itertools모듈

파이썬 itertools모듈에는 여러가지 함수들이 있는데

그 중에서 permutations인 조합순열을 사용하였다.

permutations를 사용할 때 n의 범위가 작아야 한다.

경우의 수가 매우 많기 때문에 출력초과가 나오기 쉽상이다.

문제에서 n의 범위가 3부터 8까지이기 때문에 가능하다.

 

#2. permutations을 for문을 사용할 때 위와같이 작성한다.

그리고 절대값 함수인 abs를 이용하여 temp의 최대값을 저장하여 출력한다.

반응형

'코딩 > Python' 카테고리의 다른 글

파이썬, openpyxl(6) 수식작성, 병합, 이미지삽입  (0) 2023.03.31
[Python] 백준 6603 로또  (0) 2022.12.29
[Python] 백준 15667  (0) 2022.12.24
[Python] 백준 10972 다음순열  (0) 2022.12.24
[Python] 백준 1107 리모컨  (1) 2022.12.21