전공/백준
11497
yha97
2022. 11. 12. 00:30
날짜 : 2022. 11. 11
사용 언어 : python
문제
코드
import sys
t = int(sys.stdin.readline())
for _ in range(t):
n = int(sys.stdin.readline())
arr = [0] * n
nums = list(map(int, sys.stdin.readline().split()))
nums.sort()
j = 0
k = -1
for i in range(len(nums)):
if i % 2 == 0:
arr[j] = nums[i]
j += 1
else:
arr[k] = nums[i]
k -= 1
res = abs(arr[0] - arr[-1])
for i in range(1, len(arr)):
res = max(abs(arr[i] - arr[i-1]), res)
print(res)
풀이
- 입력받은 수들을 정렬 후 순서가 홀수인 수들은 정순으로, 짝수인 수들은 역순으로 채워나갔다.
- 이를 간단하게 구현하기 위해 배열의 길이가 같은 임의의 리스트를 만들고 0으로 채운 후 재지정하는 방식으로 전개했다.
- 그 후에 for문을 통해 각 요소간 차이의 최댓값을 도출하였다.
알게된 점
-
참고 사이트
-