👉 문제바로가기
나무 조각에 쓰여있는 숫자 5개에 대해 인접한 숫자와 대소를 비교하고 위치를 바꾸어 오름차순으로 정렬하는 문제입니다. 오름차순으로 정렬하는 과정에서 중간 결과들을 출력해주면 됩니다.
이웃한 두 원소의 대소 관계를 비교하여 필요에 따라 교환을 반복하는 알고리즘인 버블 정렬(단순 교환 정렬)을 사용하였습니다.
배열의 크기가 N인 경우, N-1개의 아이템과 비교해야 합니다. 최악의 경우에는 모든 원소들을 교환해야 하므로 버블 정렬의 시간복잡도는 O(N^2)입니다. 이 문제에서는 원소가 5개만 있으므로 최악의 경우 연산 횟수는 약25회입니다.
import sys
number = list(map(int, sys.stdin.readline().split()))
for i in range(len(number) - 1):
for j in range(0, len(number) - (i + 1)):
if (number[j] > number[j + 1]):
number[j], number[j + 1] = number[j + 1], number[j]
print(*number)