2024-05-22-동국대SW역량강화캠프-406. 과정 출력하기 (버블)
문제
솔이는 버블 정렬을 배웠지만 아직 버블 정렬이 어떻게 수행되는지 이해가 가지 않는다고 한다.
그런 솔이를 위해 버블 정렬이 진행되는 과정을 출력해주는 프로그램을 만들어주자.
수 교환은 최소로 하며, 교환이 일어날 때에만 그 결과를 출력해주면 된다.
입력
첫째 줄에 데이터의 개수 n이 주어진다. (1≤n≤100)
둘째 줄에 정렬하고자 하는 데이터 n개가 공백을 사이에 두고 주어진다.
출력
처음 입력으로 주어진 상태부터 시작하여 교환이 일어나는 과정을 모두 출력하여라.
예제 1 입력
5
1 19 14 19 2
예제 1 출력
1 19 14 19 2
1 14 19 19 2
1 14 19 2 19
1 14 2 19 19
1 2 14 19 19
예제 2 입력
9
8 10 15 20 2 17 18 3 11
예제 2 출력
8 10 15 20 2 17 18 3 11
8 10 15 2 20 17 18 3 11
8 10 15 2 17 20 18 3 11
8 10 15 2 17 18 20 3 11
8 10 15 2 17 18 3 20 11
8 10 15 2 17 18 3 11 20
8 10 2 15 17 18 3 11 20
8 10 2 15 17 3 18 11 20
8 10 2 15 17 3 11 18 20
8 2 10 15 17 3 11 18 20
8 2 10 15 3 17 11 18 20
8 2 10 15 3 11 17 18 20
2 8 10 15 3 11 17 18 20
2 8 10 3 15 11 17 18 20
2 8 10 3 11 15 17 18 20
2 8 3 10 11 15 17 18 20
2 3 8 10 11 15 17 18 20
Source
n = int(input())
arr = list(map(int, input().split()))
print(*arr)
for i in range(n):
for j in range(n - i - 1):
if(arr[j] > arr[j + 1]):
tmp = arr[j]
arr[j] = arr[j + 1]
arr[j + 1] = tmp
print(*arr)