알고리즘 백준 2751 수 정렬하기2(파이썬)

백준 파이썬 수 정렬하기2

백준 수 정렬하기2 파이썬

 

문제

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

입력

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

출력

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

 

코드

 

import sys

N = int(sys.stdin.readline())
empty=[]


for i in range(N):  #입력받은 수를 리스트에 저장
    num = int(sys.stdin.readline())
    empty.append(num)
    
    
empty = sorted(empty)  #정렬


for k in empty:  #출력하기
    print(k,end="\n")

 

코드설명

앞선 수 정렬하기와 똑같은 코드이다.

 

다만 수 정렬하기와 수 정렬하기2와의 차이점은 N의 범위인데

전자는 O(N2)의 시간복잡도 후자는 O(NlogN)의 시간복잡도로 계산해야한다.

원래대로라면 전자는 삽입,버블 정렬

 

후자는 병합,힙 정렬을 사용해야하지만 파이썬 내부 라이브러리인 sorted가 이미 O(NlogN)의 시간복잡도를 가지고있다고한다.

 

깃허브

https://github.com/developer-hyun/Algorithm-Study/tree/main

 

+ Recent posts