728x90
#2751
import sys
input=sys.stdin.readline
n=int(input())
num_list=[]
for i in range(n):
x=int(input())
num_list.append(x)
num_list.sort()
for i in range(n):
print(num_list[i])
파이썬 내장함수인 sorted를 사용하려하니 시간초과가 발생하는 문제가 존재하였다. 이를 해결하기 위해서는 몇몇 방법이 존재한다.
우선 내장함수 대신 성능이 좋은 sorting algorithm을 이용하는 것이다. 그러나 이는 간단한 문제가 아니고 c++ 공부중에 다양한 sorting algorithm을 다뤄봤으니 python 버전으로 다시 공부할때 작성해보도록 하고 조금 더 합리적이고 간단한 방법을 찾아보았다.
두번째로는 백준에 제출할 때 python3를 사용하는 것이아니라 pypy3를 사용하는 것이다. pypy3는 python3 언어와 문법은 같지만 JIT(Just-In Time) 컴파일 방식을 도입한 것이다. JIT 컴파일이란 프로그램을 실행하기 전에 컴파일 하는 대신, 프로그램을 실행하는 시점에서 필요한 부분을 즉석으로 컴파일 하는 방식이다. 자주 쓰이는 코드를 캐싱하는 기능이 있기 때문에 인터프린터 언어의 느린 실행속도를 개선할 수 있다.
마지막이자 내가 사용한 방법은 sys 라이브러리를 import 해서 sys.stdin.readline을 이용하는 것이다. 이는 파이썬에서 시간을 줄이기 위해 흔히쓰인다.
728x90
'Sketch (Programming Language) > Python' 카테고리의 다른 글
Baekjoon Training #1620 (0) | 2023.01.26 |
---|---|
Baekjoon Training #15650 (0) | 2023.01.21 |
Baekjoon Training #15649 (0) | 2023.01.15 |
Baekjoon Training #2178 (0) | 2023.01.10 |
Baekjoon Training #2563 (0) | 2023.01.07 |