문제 링크
11497. 통나무 건너뛰기
문제 코드
T = int(input())
for test in range(T):
N = int(input())
num_list= list(map(int,input().split()))
num_list.sort()
result_list = [0]*N
checker = True
idx = 0
reverse_idx = -1
for i in range(N):
if checker:
checker =False
result_list[idx] = num_list[i]
idx+=1
else:
checker = True
result_list[reverse_idx] = num_list[i]
reverse_idx-=1
maxist = 0
for idx in range(N-1):
tmp = abs(result_list[idx] -result_list[idx+1])
if tmp >maxist:
maxist = tmp
print(maxist)
문제풀이
- 주어진 숫자 리스트를 우선 정렬한다.
- 정렬한 순서대로 번갈아가면서 결과리스트의 앞과 뒤에 하나씩 넣는다.
- 결과 리스트의 인접값중 최대값이 결과가 된다.