반응형

2947

https://www.acmicpc.net/problem/2947

 

2947번: 나무 조각

첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다.

www.acmicpc.net

[정답]

1
2
3
4
5
6
7
8
9
import sys
= list(map(int, sys.stdin.readline().split()))
for i in range(len(a)-1):
    for j in range(len(a)-1-i):
        if a[j] > a[j+1]:
            temp = a[j]
            a[j] = a[j+1]
            a[j+1= temp
            print(' '.join(map(str, a)))
cs

.

.

.

[풀이]

Bubble sort, 버블 정렬 문제다.

그냥 bubble sort의 개념을 묻고 있다.

 

n개의 수에서

처음부터 순서대로 두 값을 비교하여 큰 값이 오른쪽으로 가도록 한다.

n-1번 반복하여 한 사이클을 돌면 최댓값이 맨 오른쪽 끝(a[n-1])으로 가 있을 것이다.

 

다시 처음부터 값 비교를 해준다. 이 때 최댓값이 맨 오른쪽(a[n-1])에 있기 때문에

 a[n-2]까지만 비교를 해준다. 

 

즉, n-1, n-2, ..., 1번 반복하게 된다.

끝이다.

 

p.s.

정렬 종류에는 여러가지가 있다. 하나씩 완벽하게 이해하자.

버블 정렬은 그 중에서 제일 간단한 것이다.

반응형

+ Recent posts