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
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA-1948][Python] 날짜 계산기 (1) | 2023.10.19 |
---|---|
[SWEA-1954][Python] 달팽이 숫자 (1) | 2023.10.18 |
[SWEA-1959][Python] 두 개의 숫자열 (0) | 2023.10.17 |
[SWEA-1961][Python] 숫자 배열 회전 (0) | 2023.10.17 |
[SWEA-1970][Python] 쉬운 거스름돈 (0) | 2023.10.16 |
[SWEA-1974][Python] 스도쿠 검증 (0) | 2023.10.16 |
[SWEA-1979][Python] 어디에 단어가 들어갈 수 있을까 (1) | 2023.10.14 |
[SWEA-1983][Python] 조교의 성적 매기기 (0) | 2023.10.12 |