시도
처음에 시도는 sorting을 해줘서 가장 작은 수를 가장 중간에 두고 차이가 작은 애들을 양옆에 두는 방법으로 풀려고 했으나 코드 상으로 못 풀겠어서 풀이를 보았다.
풀이
내림차순으로 리스트를 정렬해주면
[9 7 5 4 2]가 되고
9랑 차이가 젤 적은 애는 7,5 이므로 얘네가 9 양 옆에 올 것이다.
그 다음 7 기준에서는 차이가 젤 적은 애는 5,4가 될거고 7 옆에는 5나 4가 올것이다.
이런식으로 쭉 하게 되면 결국
내림차순으로 정렬되어 있기 때문에 당연히 Ln - L(n+2) > Ln - L(n+1)이 성립한다.
이때, 난이도는 인접한 원소끼리의 높이차의 최댓값에 따라 결정되기 때문에 위 공식에 근거하여 최댓값을 갱신해주면 된다.
그래서 result= max(result, data[i]-data[i+2]) 나오게 된다.
import sys a= int(input()) for _ in range(a): b = int(input()) input = sys.stdin.readline data = list(map(int,input().split())) data.sort(reverse= True) result=0 for i in range(b-2): result= max(result, data[i]-data[i+2]) print(result)