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문을 통해 각 요소간 차이의 최댓값을 도출하였다.

 

 

알게된 점

 

 

참고 사이트