SWE(4843)_특별한 정렬

SWE 4843 특별한 정렬

가장 큰 수, 가장 작은 수, 2번 째 큰 수, 2번째 작은 수 이런 식으로 번갈아서 정렬하기

아이디어

  1. 내림차순 정렬을 한다.
  2. 첫번째 수 뽑아서 새로운 리스트에 넣고
  3. 리스트의 [-1]을 새로운 리스트에 넣는다.

알게된 것

  1. Q) 리스트를 어떻게 리스트 형식 바꿔서 숫자 나열로 출력해주지 ? -> print문 쓰면 개행되니까 sys.stdout.write()? sys는 SWE에서 못쓰는데? -> print(,end="")

코드

T = int(input())
for tc in range(1, T+1):
    N = int(input())
    arr = list(map(int, input().split()))
    arr.sort(reverse=True)
    result = []
    for i in range(N//2+1):
        if(len(arr) != 0):
            result.append(arr[0])
            del arr[0]
        if(len(arr) != 0):
            result.append(arr[-1])
            del arr[-1]
    print("#%s" % tc, end=" ")
    for i in range(10):
        print(result[i], end=" ")
    print()


참고자료

0%