문제 : https://www.acmicpc.net/problem/11497
가운데 값을 가장 큰 값을 놓고 정규분포 모양으로 히스토그램을 만든다고 생각했다.
이런 느낌?
입력받은 값을 배열하고 가운데를 중심으로 값을 퍼트려주면 된다. 양 옆을 그 다음 큰 값들로 채워주면 된다.
[2,4,5,7,9] 배열이 있으면
[9],
[5,9,7],
[2,5,9,7,4] 이런식으로 하면 위의 그림 형태를 띌 수 있다.
그렇게 되면 앞에는 1,3,5번째 값이 먼저 들어오고 그 다음으로 4,2번째 값이 들어온다.
즉, 홀수 번째 값들 다음 짝수 역순 번째 값이 들어온다.
이 방법보다 더 간단한 게 있지만 나는 이게 더 직관적인 것 같다.
tc = int(input())
for t in range(tc):
N = int(input())
arr = list(map(int, input().split()))
new_list = []
arr.sort()
for i in range(len(arr)):
if i % 2 == 0:
new_list.append(arr[i])
for i in range(len(arr)-1, 0, -1):
if i % 2 != 0:
new_list.append(arr[i])
max_num = abs(new_list[0] - new_list[-1])
for i in range(1, len(new_list)):
max_num = max(abs(new_list[i-1]-new_list[i]), max_num)
print(max_num)