10 1 9 2 8 3 7 4 6 5

인덱스 짝수인 것은 큰 숫자부터 내림차순,

홀수 인 것은 작은 숫자부터 오름차순 정렬하는 문제이다.

리스트에 새로 담아주는 방법말고, 말그대로 정렬을 해야한다!

 

T=int(input())
for tc in range(1,T+1):
    n=int(input())
    arr=list(map(int,input().split()))

    for i in range(n):
        if i%2==0: #짝수 (내림차순 정렬해야함)
            max_v=arr[i]
            for j in range(i,n):
                if arr[j]>max_v:
                    max_v=arr[j]
                    arr[i],arr[j]=arr[j],arr[i]
        else:
            min_v=arr[i]
            for j in range(i,n):
                if arr[j]<min_v:
                    min_v=arr[j]
                    arr[i],arr[j]=arr[j],arr[i]
    print(f'#{tc}',end=' ')
    print(*arr[:10])

짝수 홀수 나누었다.

인덱스 첫번째부터 반복문을 돌린다. 인덱스가 짝수일 경우에는 첫번째 인덱스 값을 최대값으로 두고, 이후 검색하며 더 큰 값을 만나면 최대값을 바꿔주고 위치를 바꾼다.

이런 방식으로 하게되면 계속해서 큰 값을 첫번째 인덱스 자리에 넣어주게 되고 검색 범위에서 가장 큰 값이 오게된다.

검색범위는 시작 인덱스부터 해야 한다. 이미 정렬한 것은 끝! 더 많은 범위에서 큰 값을 찾은 결과이기 때문에 볼 필요가 없다. 나머지 중에 가장 큰 값을 또 다시 찾는 방식이다.

홀수 인덱스는 반대로 최저값을 찾아서 교환한다.

 

만들어진 배열 앞 10개만 출력하기 때문에 스플라이싱을 이용했다.

 

  print(*arr) 리스트 요소 나열 표현법 기억하기!