문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다.
둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
✔ Solution - 시간 초과
N = int(input())
num = []
for _ in range(N):
num.append(int(input()))
for i in sorted(num, reverse=True):
print(i)
위의 코드는 시간초과가 뜬다.
2750번과 다르게 N의 개수가 1,000,000개 까지 주어져서 그런 것 같다.
다른 사람의 코드를 보니 sys모듈을 사용하거나 PyPy3로 돌리는 것 같다.
✔ Solution 2
import sys
# 반복문으로 여러줄 입력받는 상황에서는 반드시 sys.stdin.readline()을 사용
N = int(sys.stdin.readline())
num = []
for i in range(N):
num.append(int(sys.stdin.readline()))
num.sort()
for i in num:
print(i)
'알고리즘 > 백준' 카테고리의 다른 글
[Python] 백준 11650번 : 좌표 정렬하기 (0) | 2022.01.23 |
---|---|
[Python] 백준 1427번 : 소트인사이드 (0) | 2022.01.23 |
[Python] 백준 2108번 : 통계학 (0) | 2022.01.23 |
[Python] 백준 10989번 - 수 정렬하기 3 (0) | 2022.01.23 |
[Python] 백준 2750번 : 수 정렬하기 (0) | 2022.01.23 |