백준

백준 2751번 어떻게 풀었나

kimbro6 2022. 12. 30. 00:01
  • 풀었던 방법
    • 2750번(수 찾기)문제와 비슷해서 코드를 그대로 옮겨 보았다.
    • 그런데 시간초과가 나왔다.
    • 이건 도데체 뭔지 모르겠어서 검색해 보았더니 python3 대신 pypy3로 제출하면 된다고 했다.
    • 정말로 그랬다.
  • 좋았던점
    • 내가 해결할 수 없는 부분은 빠르게 검색해서 시간을 아꼈다. 
  • 더 알고싶은 부분
    •  pypy3와 python3의 차이점
PyPy3에서 실행시, 자주 쓰이는 코드를 캐싱하는 기능이 있기 때문에, 메모리를 조금 더 사용하여 그것들을 저장하고 있어, 실행속도를 개선할 수 있다. https://ralp0217.tistory.com/entry/Python3-와-PyPy3-차이
  • input()보다 readline()이 더 빠르다고 한다. 왜 그런지 궁금하다.
단순한 N값을 입력받을 때는 input()을 사용해도 무방합니다.
그러나 반복문으로 여러줄 입력받는 상황에서는 반드시 sys.stdin.readline()을 사용해야 시간초과가 발생하지 않습니다. https://velog.io/@yeseolee/Python-파이썬-입력-정리sys.stdin.readline

코드

#PyPy3로 제출
N = int(input())
A = [0]*N
for i in range(N):
	A[i] = int(input())

A.sort()

for k in A:
	print(k)