← 문제 목록
Python 문제 #4

과제 10: 버블 정렬 구현하기 (Python)

빈칸 3개 테스트 4개 제한 2.0초

문제 설명

과제 10: 버블 정렬 구현하기 (Python)

반복문(for)을 이용하여 버블 정렬(Bubble Sort)을 수행하는 프로그램을 만들어봅시다.

버블 정렬은 서로 인접한 두 원소를 검사하여 정렬 기준에 맞지 않으면 자리를 교환하는 알고리즘입니다. 반복할 때마다 가장 큰 값이 리스트의 맨 끝으로 이동하는 과정이 거품이 떠오르는 모양과 같다고 하여 버블 정렬이라고 부릅니다.

현재 프로그램은 5개의 정수가 들어있는 리스트를 오름차순으로 정렬하도록 작성되어 있습니다.

다음 조건을 만족하는 프로그램을 만드세요.

  1. 리스트 numbers에는 [7, 3, 5, 1, 4]가 저장되어 있습니다.
  2. 바깥쪽 for문은 리스트의 길이보다 1 작은 횟수만큼 반복하여 전체 정렬 회차(i)를 제어합니다.
  3. 안쪽 for문은 인접한 요소를 비교하기 위해 반복하며, 이미 정렬이 끝난 뒷부분은 비교하지 않도록 반복 범위를 설정하세요.
  4. 만약 현재 요소(numbers[j])가 바로 다음 요소보다 크다면, 두 요소의 자리를 서로 바꾸세요(Swap).
  5. 정렬이 완료된 리스트를 출력하세요.
  6. 반드시 for문을 사용하세요.

아래 코드를 이용해서 프로그램을 작성하세요.

[가], [나], [다]에 들어갈 코드를 작성하면 됩니다.

numbers = [7, 3, 5, 1, 4]

for i in range(len(numbers) - 1):
    for j in range([가]):
        if [나]:
            temp = numbers[j]
            numbers[j] = numbers[j+1]
            [다] = temp

print(numbers)

실행결과 (예시 1)

[1, 3, 4, 5, 7]

코드

표시된 빈칸에 들어갈 코드를 오른쪽 입력란에 작성하세요.

Python
numbers = []
for i in range(0, 5):
    numbers.append(int(input()))

for i in range(len(numbers) - 1):
    for j in range([빈칸 1]):
        if [빈칸 2]:
            temp = numbers[j]
            numbers[j] = numbers[j+1]
            [빈칸 3] = temp
for number in numbers:
    print(number)