버블 정렬을 이용한 문제
범위를 1개씩 줄여가며 정렬을 수행한다.
해당 인덱스의 요소와 다음 인덱스의 요소를 비교하여 오름차순으로 정렬한다.
# 수 정렬하기
# N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
# 첫째 줄에 수의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이며, 중복되지 않는다.
# 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
import sys
input = sys.stdin.readline
n = int(input())
num = [0] * n
for i in range(n):
num[i] = int(input())
for j in range(n, 0, -1):
for i in range(n - 1):
if num[i] > num[i + 1]:
tmp = num[i]
num[i] = num[i + 1]
num[i + 1] = tmp
for i in range(n):
print(num[i])
파이썬 for문에서 범위를 역순으로 지정하고 싶다면
for i in range(n, 0, -1)
혹은
for i in reversed(range(n))
과 같이 사용할 수 있다.
'Code > Python' 카테고리의 다른 글
[Python] 백준 1427번 소트인사이드 (1) | 2023.09.28 |
---|---|
[Python] 백준 1377번 버블 소트 (0) | 2023.09.28 |
[Python] 백준 11286번 절댓값 힙 (0) | 2023.09.27 |
[Python] 백준 17298번 오큰수 (0) | 2023.09.27 |
[Python] 백준 2164번 카드2 (0) | 2023.09.26 |