728x90
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
728x90

문제제약 사항입력출력예제문제 해결 방법코드sort 함수를 이용하여 풀기버블 정렬(Bubble Sort)을 이용하여 풀기선택 정렬(Selection Sort)을 이용하여 풀기삽입 정렬(Insertion Sort)을 이용하여 풀기참고