Problem Solving/알고리즘

[백준] [파이썬] 11497 - 통나무 건너뛰기

Supersett 2022. 7. 6. 12:24

드디어 혼자 풀었다. 너무 행복하다...

 

여기서 내가 구글링했던 정보들

1. 배열요소 앞, 뒤 추가

deque를 import 해와서 앞뒤에 값을 추가해주는 appendleft() , append()를 사용했다.

정보를 내가 원하는대로 정렬한 뒤 다시 list에 담아서 다음 작업을 진행했다.

 

from collections import deque

my_list = [2, 9, 3]
deq = deque(my_list)
deq.appendleft('a')

new_list = list(deq)
print(new_list)

2. 절대값

abs('원하는값')

 

 

3. 나의 제출 코드

 

import sys
from collections import deque
#절대값 abs(,,)
n=int(sys.stdin.readline())
data=[]

for x in range(n):
    k=int(sys.stdin.readline())
    target=list(map(int,sys.stdin.readline().split()))
    data.append(target)
    
for y in data:
    y.sort(reverse=True)
    new_y=deque(y)
    #print(new_y)
    sorted_list=[]
    new_sorted_list=deque(sorted_list)    
    for i in range(0,len(y)):
        if i%2==0:
            new_sorted_list.appendleft(y[i])
        else:
            new_sorted_list.append(y[i])
    #위 작업을 통해 원하는 정답이 나오는 배열로 정렬 완료
    #print(new_sorted_list)
    result_list=list(new_sorted_list)
    #print(result_list)
    
    #인접한 값들의 차이를 계산해서 배열에 넣는 작업
    target_value_list=[]
    for j in range(0,len(result_list)):
        minus_value=abs(result_list[j-1]-result_list[j])
        target_value_list.append(minus_value)
        
    #배열에 담긴 값들 중 max값 출력    
    print(max(target_value_list))