[백준 2750번-파이썬/Python] 수 정렬하기
알고리즘 공부/BOJ백준 풀이

[백준 2750번-파이썬/Python] 수 정렬하기

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의 관련 글을 참고하세요!