알고리즘 백준 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
'알고리즘' 카테고리의 다른 글
알고리즘 백준 1427 소트인사이드(파이썬) (0) | 2022.01.07 |
---|---|
알고리즘 백준 2108 통계학(파이썬) (0) | 2022.01.07 |
알고리즘 백준 2750 수 정렬하기(파이썬) (0) | 2022.01.07 |
알고리즘 백준 1436 영화감독 숌(파이썬) (0) | 2022.01.06 |
알고리즘 - 백준 - 7568 - 덩치(파이썬) (0) | 2022.01.06 |