[파이썬] 백준 10819 : 차이를 최대로 (실버)
10819번: 차이를 최대로
첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.
www.acmicpc.net
문제
풀이
0. 방향성 생각
주어진 n의 범위가 매우 작다는 점 (팩토리얼 하면 크긴 하지만)
이 부분을 이용해서 모든 순열 찾고 진행.
주어진 수의 최소값이 -100이므로 절대값 합의 최소값을 100*n으로 잡고 갱신
1. 풀이
from itertools import permutations
n = int(input())
arr = list(map(int,input().split()))
answer = -100*n
temp = list(permutations(arr,n))
for i in range(len(temp)):
temp_sum = 0
for j in range(n-1):
temp_sum += abs(temp[i][j]-temp[i][j+1])
if answer < temp_sum:
answer = temp_sum
print(answer)
itertools를 사용해서 모든 순열 찾고 진행
전체 코드
from itertools import permutations
n = int(input())
arr = list(map(int,input().split()))
answer = -100*n
temp = list(permutations(arr,n))
for i in range(len(temp)):
temp_sum = 0
for j in range(n-1):
temp_sum += abs(temp[i][j]-temp[i][j+1])
if answer < temp_sum:
answer = temp_sum
print(answer)
모듈써서 그런가 난이도 치고 매우매우매우 쉽게 풀었다
'Algorithm > etc' 카테고리의 다른 글
[파이썬] 백준 2630 : 색종이 만들기 (실버2) (0) | 2023.06.05 |
---|---|
[파이썬] 백준 1002 : 터렛 (실버3) (0) | 2023.05.30 |
[파이썬] 백준 3273 : 두 수의 합 (실버3) (0) | 2023.05.27 |
[파이썬] 백준 2559 : 수열 (실버3) (0) | 2023.05.24 |
[파이썬] 백준 7869 : 두 원 (골드2) (0) | 2023.05.17 |
[파이썬] 백준 2166 : 다각형의 면적 (골드5) (0) | 2023.05.16 |
[파이썬] 백준 1759: 암호만들기 (골드5) (0) | 2023.05.11 |
댓글