코딩일지/python 백준 알고리즘

python 백준 알고리즘 2750번: 수 정렬하기

야언 2022. 9. 20. 17:55

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

 

2750번: 수 정렬하기

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

오름차순 정렬 - sort 혹은 sorted 이용

sort - 리스트 자체를 변경   /  sorted - 기존의 리스트가 아닌 정렬된 새로운 리스트 생성

문제에서 권장하는 방법으로 버블정렬, 삽입정렬을 사용할 수도 있다

 

버블정렬 - 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네 번째를, … 이런 식으로 (마지막-1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬하는 방식

N = int(input())
num_list = []

for i in range(N):
    num_list.append(int(input()))

for i in range(len(num_list)):
    for j in range(len(num_list)):
        if num_list[i] < num_list[j] :
            num_list[i], num_list[j] = num_list[j], num_list[i]

for n in num_list:
    print(n)

 

 

삽입 정렬 -  자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성시키는 방식.

N = int(input())
num_list = []

for i in range(N):
    num_list.append(int(input()))

for i in range(1, len(num_list)):
    while(i>0) and (num_list[i] < num_list[i - 1]):
        num_list[i], num_list[i - 1] = num_list[i - 1], num_list[i]
        
        i -= 1

            
for n in num_list:
    print(n)

 

 

 

 

이번 문제의 경우 단순하게 sort 함수를 사용해 해결했다.

 

내 제출

N = int(input())
num_list = []

for i in range(N):
    num_list.append(int(input()))

num_list.sort()

for i in range(len(num_list)):
    print(num_list[i])