http://acmicpc.net/problem/2750
{코드}
data = [int(input()) for _ in range(int(input()))]
for i in range(len(data)):
for j in range(len(data)-i-1):
if data[j] > data[j+1]:
data[j], data[j+1] = data[j+1], data[j]
[print(v) for v in data]
{설명}
버블 정렬의 코드로 0번째부터 n-1번째까지 n번 돌며 바로 오른쪽에 있는 값과 비교해 더 큰 값을 뒤로 옮깁니다.
*코딩하는 거니님의 버블 소트 영상을 참고하세요!
{코드}
data = [int(input()) for _ in range(int(input()))]
for i in range(len(data)-1):
min_index = i
for j in range(i+1, len(data)):
if data[j] < data[min_index]:
min_index = j
data[i], data[min_index] = data[min_index], data[i]
[print(v) for v in data]
{설명}
선택 정렬의 코드로 가장 작은 값을 찾아서 i번째 값과 교환하며 정렬합니다.
*코딩하는 거니님의 선택 정렬 영상을 참고하세요!
{코드}
data = [int(input()) for _ in range(int(input()))]
for end in range(1, len(data)):
i = end
while i > 0 and data[i - 1] > data[i]:
data[i - 1], data[i] = data[i], data[i - 1]
i -= 1
[print(v) for v in data]
{설명}
삽입 정렬의 코드로 범위를 하나씩 늘려가며 정렬된 부분에 값이 들어가야 하는 부분을 찾아 정렬합니다.
*코딩하는 거니님의 삽입 정렬 영상을 참고하세요!
{코드}
[print(v) for v in sorted([int(input()) for _ in range(int(input()))])]
{설명}
파이썬의 내장 정렬 함수를 사용한 풀이로 한 줄로 적을 수 있다.
파이썬의 정렬 함수는 병합 정렬과 삽입 정렬을 활용한 TimSort를 사용한다.
*자세한 내용은 NaverD2의 관련 글을 참고하세요!
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 10989번-파이썬/Python] 수 정렬하기 3 (0) | 2020.12.28 |
---|---|
[백준 2751번-파이썬/Python] 수 정렬하기 2 (0) | 2020.12.28 |
[백준 1436번-파이썬/Python] 영화감독 숌 (0) | 2020.12.26 |
[백준 1018번-파이썬/Python] 체스판 다시 칠하기 (0) | 2020.12.26 |
[백준 7568번-파이썬/Python] 덩치 (0) | 2020.12.25 |