[백준] Python 11497번 통나무 건너뛰기 실버1 - 그리디

swb·2022년 11월 29일
0

백준

목록 보기
13/18

문제 : https://www.acmicpc.net/problem/11497

접근 방법

  1. 가운데 값을 가장 큰 값을 놓고 정규분포 모양으로 히스토그램을 만든다고 생각했다.
    이런 느낌?

  2. 입력받은 값을 배열하고 가운데를 중심으로 값을 퍼트려주면 된다. 양 옆을 그 다음 큰 값들로 채워주면 된다.
    [2,4,5,7,9] 배열이 있으면
    [9],
    [5,9,7],
    [2,5,9,7,4] 이런식으로 하면 위의 그림 형태를 띌 수 있다.

  3. 그렇게 되면 앞에는 1,3,5번째 값이 먼저 들어오고 그 다음으로 4,2번째 값이 들어온다.
    즉, 홀수 번째 값들 다음 짝수 역순 번째 값이 들어온다.

  4. 이 방법보다 더 간단한 게 있지만 나는 이게 더 직관적인 것 같다.

풀이

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)
profile
개발 시작

0개의 댓글