본문 바로가기
Algorithm/코딩테스트 (Python)

[SWEA 4843][파이썬 S/W 문제해결 기본]. 2일차 - 특별한 정렬

by 싱브이 2023. 9. 25.
728x90
반응형

문제

보통의 정렬은 오름차순이나 내림차순으로 이루어지지만, 이번에는 특별한 정렬을 하려고 한다.
N개의 정수가 주어지면 가장 큰 수, 가장 작은 수, 2번째 큰 수, 2번째 작은 수 식으로 큰 수와 작은 수를 번갈아 정렬하는 방법이다.
예를 들어 1부터 10까지 10개의 숫자가 주어지면 다음과 같이 정렬한다.

10 1 9 2 8 3 7 4 6 5

주어진 숫자에 대해 특별한 정렬을 한 결과를 10개까지 출력하시오.

 

 

내 코드

T = int(input())
for test_case in range(1, T+1):
    N = int(input())
    numbers = list(map(int,input().split()))
    li = []
    while len(numbers) > 0:
        max_num = max(numbers)
        numbers.remove(max_num)
        li.append(max_num)
        min_num = min(numbers)
        numbers.remove(min_num)
        li.append(min_num)
    answer = ' '.join(map(str,li[0:10]))
    print("#{} {}".format(test_case,answer))

 

 

번갈아가면서 정렬되고 있다는 것을 파악하기 (짝수, 홀수)

 

728x90
반응형

댓글