티스토리 뷰

728x90
반응형

문제

 

N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.

 

입력

 

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 

이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 

수는 중복되지 않는다.

 

출력

 

첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.

 

풀이

 

방금 전에 작성한 글인 삽입 정렬을 구현해 풀어보았다.

 

아마도 파이썬에 내장되어 있는 정렬로 풀어도 풀릴 것이라 생각하지만

 

연습 삼아서.

 

파이썬으로 구현한 삽입정렬은 아래 링크에 있다.

 

https://gnidinger.tistory.com/804

 

[Algorithm]파이썬으로 삽입정렬 구현하기

Insert Sort 삽입 정렬(Insert Sort)은 모든 요소를 이미 정렬된 요소와 비교해서 삽입하는 알고리즘이다. 문제가 주어졌을 때 사람이 무의식적으로 가장 먼저 떠올리는 알고리즘이며, 그만큼 직관적

gnidinger.tistory.com

import sys


def insert_sort(list):
    for i in range(1, len(list)):
        tmp = list[i]
        j = i - 1
        while j >= 0 and tmp < list[j]:
            list[j + 1] = list[j]
            j -= 1
        list[j + 1] = tmp


n = int(sys.stdin.readline())

list = []

for i in range(n):
    list.append(int(sys.stdin.readline()))

insert_sort(list)

print(*list, sep='\n')
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함