728x90

문제

주어진 N 길이의 숫자열을 오름차순으로 정렬하여 출력하라.

 

제약 사항

N 은 5 이상 50 이하이다.

 

입력

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에 N 이 주어지고, 다음 줄에 N 개의 숫자가 주어진다.

 

출력

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

 

예제

[입력] [출력]
10
5
1 4 7 8 0
...
#1 0 1 4 7 8
...

 

문제 해결 방법

  • @sort@ 함수를 이용하여 간단하게 문제를 해결하였다.

 

코드

@sort@ 함수를 이용하여 풀기

T = int(input())

for test_case in range(1, 1 + T):
    N = int(input())

    num_list = list(map(int, input().split()))

    num_list.sort()    # 오름차순 정렬
    
    answer = ' '.join(str(item) for item in num_list)

    print(f"#{test_case} {answer}")

 

버블 정렬(Bubble Sort)을 이용하여 풀기

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    
T = int(input())

for test_case in range(1, 1 + T):
    N = int(input())
    num_list = list(map(int, input().split()))
    
    bubble_sort(num_list) 
    
    answer = ' '.join(map(str, num_list))
    
    print(f"#{test_case} {answer}")

 

선택 정렬(Selection Sort)을 이용하여 풀기

def selection_sort(arr):
    n = len(arr)
    for i in range(n):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
    
T = int(input())

for test_case in range(1, 1 + T):
    N = int(input())
    num_list = list(map(int, input().split()))
    
    selection_sort(num_list)  
    
    answer = ' '.join(map(str, num_list))
    
    print(f"#{test_case} {answer}")

 

삽입 정렬(Insertion Sort)을 이용하여 풀기

def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        arr[j + 1] = key
    
T = int(input())

for test_case in range(1, 1 + T):
    N = int(input())
    num_list = list(map(int, input().split()))
    
    insertion_sort(num_list)
    
    answer = ' '.join(map(str, num_list))
    
    print(f"#{test_case} {answer}")

 

참고

  • 난이도: D2
728x90