[Python]BaekJoon.AC
[Python]백준 BaekJoon.AC 2751 : 수 정렬하기2(sys, sort())
스뇨잉
2022. 1. 13. 14:46
728x90
728x90

https://www.acmicpc.net/problem/2751
2751번: 수 정렬하기 2
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
www.acmicpc.net
왜 이런 문제가 이 난이도에 있을까 무조건 의심부터 시작했지만..
시간제한이 2초나 되서, 파이썬은 괜찮지 않을까 싶어 뚝딱뚝딱 제출했더니 역시나 시간초과였다!..
이 심플한 문제에 다른 풀이과정이 어떤게 있을까 생각했다.
리스트 크기를 1,000,000으로 정해두고 boolean으로 받아야 하나, 별 생각을 다 해봤는데.
sys로 숫자를 받아야 통과되는 문제인 듯 했다.
다른 방법도 있는 것 같지만.. sys를 사용해본적이 거의 없으니, 적용해보기로 했다.
이 한줄이 이렇게 드라마틱한 차이를 나타낼 수 있음이 신기하면서도 불편하다.
내가 뭐 NASA 같은 곳에서 일하지만 않다면 목숨 걸고 나노 단위의 시간초를 다룰 일이 얼마나 있겠냐만은,
그래도 신경쓸 부분임은 맞다.
sys에 대해 더 알아보고, 때에 따라 적용해보기로 했다.
이럴거면 input 대신 sys를 항상 쓰는게 낫지 않겠는가 싶다. 더 빨리 입력을 받아내니까.
사용하는 이유와 사용하지 않는 이유를 알아봐야겠다.
import sys
N = int(input())
nums = []
for i in range(N):
nums.append(int(sys.stdin.readline()))
nums.sort()
for i in nums:
print(i)
728x90
728x90