BOJ 11497 통나무 건너뛰기

LONGNEW·2021년 2월 24일
0

BOJ

목록 보기
178/333

https://www.acmicpc.net/problem/11497
시간 1초, 메모리 256MB
input :

  • T개의 테스트 케이스
  • 통나무의 개수를 나타내는 정수 N(5 ≤ N ≤ 10,000)
  • 통나무의 높이를 나타내는 정수 Li가 주어진다. (1 ≤ Li ≤ 100,000)

output :

  • 통나무들로 만들 수 있는 최소 난이도를 출력

조건 :

  • 난이도는 인접한 두 통나무 간의 높이의 차의 최댓값

이번에는 반대로 생각해서 틀렸다.
정렬을 해서 제일 큰 숫자부터 2개씩 내려가며 각 높이 차를 구하게 하려 했다. 그러나 통나무들이 짝수개일때 이렇게 하면 계산을 빠지게 되는 경우가 발생한다.

그래서 다시 반대로 앞에서 부터 카운트를 하도록 하자.
앞에서 부터 한다면 어떻게 할 것인가.
홀수 개를 왼쪽에 세우고, 짝수개를 오른쪽에 세운다고 생각을 하자.
고로 1의 옆에는 3이.
2의 옆에는 4가 이렇게 계속 들어오는 것이다.

import sys

t = int(sys.stdin.readline())
for i in range(t):
    n = int(sys.stdin.readline())
    data = list(map(int, sys.stdin.readline().split()))
    data.sort()

    ans = -99999

    for j in range(2, n):
        ans = max(ans, abs(data[j - 2] - data[j]))

    print(ans)

0개의 댓글