[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