문제를 보면서 전에 풀어본 수 정렬하기(2750)과 뭐가 다르냐?? 하면서 저번에 넣었던 코드를 그대로 넣어보았다.
#수 정렬하기 2
#? 시간초과
n = int(input())
num = []
for _ in range(n):
num.append(int(input()))
num.sort()
print(*num, sep = "\n")
알고보니, 2750때와는 다르게, 수의 범위가 훨씬 컸다. 그래서인지 결과가 시간 초과가 떴다.
그런데 다른 분들의 글을 읽다가 pypy3으로 넣으면 돌아간다는 점을 확인하고 pypy3으로 넣었더니 맞았댄다..
pypy3과 python3의 차이가 무엇인고 하니 python 구현이 훤씬 빠르게 하는 것이라고 한다. 엄청 자세하게는 모르겠지만 처리할 수 있는 양이 더 많아서 더더욱 빠르게 돌아가는 것 같다.!
그치만 내 목적은 pypy3으로 시간을 줄이는 것보다 python3으로도 시간을 줄이는 방법이 무엇인지이기 때문에
다시 도저언~!!
실제로 전에 풀었던 문제 중에 시간 초과를 줄이기 위해
input() 대신 sys.stdin.readline()을 이용해주었다.
#수 정렬하기 2_2
import sys
n = sys.stdin.readline()
num = []
for _ in range(int(n)):
num.append(int(sys.stdin.readline().rstrip()))
num.sort()
print(*num, sep = "\n")
음^^ 다른 분들 코드를 보니 어떤 정렬을 이용할 지 고민하시면서 푸시는 것 같은데..
조만간 정렬 공부도 해보아야 겠다.......................................................ㅠ (sort함수로 안풀리는 문제나오면 운다 증멜)
반응형