백준 #2751 수 정렬하기 2
문제
N개의 수가 주어졌을 때, 오름차순으로 정렬하는 프로그램 작성하기 !
💡Idea
- N개 만큼 수를 입력 받아야하는데 어떻게 받을까?
→ python은 변수 선언, 동적할당 같은 개념이 없다.
→ list를 하나 만들고 N만큼 반복하며 append 하자 !
- 출력을 어떻게 할까?
→ list에서 하나씩 출력하자.
Code(PyPy3)
n = int(input())
list1 = []
for i in range (0, n):
list1.append(int(input()))
list1.sort()
for i in list1:
print(i)
Code(sys 사용)
import sys
n = int(sys.stdin.readline())
list1 = []
for i in range (0, n):
list1.append(int(sys.stdin.readline()))
list1.sort()
for i in list1:
print(i)
Feedback
- 처음에 python3으로 제출했더니 시간초과 발생.
→ 검색해보니 python3으로 시간초과가 발생할 경우 PyPy3으로 제출하면 될 수도 있다고 함
→ 그래서 PyPy3으로 제출해보니 통과 !
- 시간초과의 원인이 input() 함수인 것을 발견,,
→ input()함수의 경우 prompt message를 출력하고 개행 문자(\n)를 삭제한 값을 return 함
→ 이 문제를 해결하기 위해 sys.stdin.readline()을 사용해보았더니 해결 !
Remind
- input()과 sys.stdin.readline()의 차이점
- input() 함수는 입력 받은 값의 개행 문자를 삭제하고 return
- sys.stdin.readline()은 개행 문자 포함한 값 return
→ input() 함수는 prompt message를 출력하고 개행 문자를 삭제한 값을 리턴하기 때문에 sys.stdin.readline()이 더 빠르다 !!!