Cherry & Cherish

[Python3] SWEA 퀵 정렬 5205 본문

Algorithm/SWEA

[Python3] SWEA 퀵 정렬 5205

앵도라지 2023. 1. 31. 20:02

문제 :

퀵 정렬을 구현해 N개의 정수를 정렬해 리스트 A에 넣고, A[N//2]에 저장된 값을 출력하는 프로그램을 만드시오.

 

접근 :

퀵 정렬 알고리즘을 적용했다.

 

풀이 :

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    low, equal, high = [], [], []
    for num in arr:
        if num < pivot:
            low.append(num)
        elif num > pivot:
            high.append(num)
        else:
            equal.append(num)
    return quick_sort(low) + equal + quick_sort(high)
    

T = int(input())
for tc in range(1, T+1):
    N = int(input())
    arr = list(map(int, input().split()))
    ans = quick_sort(arr)
    print(f'#{tc} {ans[N//2]}')

 

사실, 정렬 라이브러리로 훨씬 간편하게 풀 수도 있다.

#정렬 라이브러리
T = int(input())
for tc in range(1, T+1):
    N = int(input())
    arr = sorted(list(map(int, input().split())))
    ans = arr[N//2]
    print(f'#{tc} {ans}')

'Algorithm > SWEA' 카테고리의 다른 글

[Python3] SWEA 이분탐색 5207  (0) 2023.02.01
[Python3] SWEA 연산 5247  (0) 2023.01.30
[Python3] SWEA 화물도크 5202  (0) 2023.01.28
[Python3] SWEA 컨테이너 운반 5201  (0) 2023.01.27
Comments