728x90
반응형
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
내 생각
LinkedList문제풀다가 어려워서 정신을 맑게 할겸 정렬문제를 풀어보았다.
문제 한 줄 soooo 간단. sorted이용하면되잖아??! 하고 제출하니 시간초과였다.. 이번에도 느낀 자만하지마 제발,,
시간초과의 문제는 numbers를 읽어들일 때 input()으로는 너무 느리다는 것이었다 !!!
input()을 sys.stdin.realine()으로 바꾸니 해-결!
내 코드
import sys
n = int(input())
numbers = [int(sys.stdin.readline()) for _ in range(n)]
sorted_numbers = sorted(numbers)
for num in sorted_numbers:
print(num)
** input()와 sys.stdin.readline() 차이
- 입력 속도:
- input(): 입력을 받을 때마다 내부적으로 입출력 버퍼를 비운다. 이는 작은 입력에서는 문제가 되지 않지만, 대량의 입력을 처리할 때 느릴 수 있다. 즉, 개행 문자를 삭제한 값을 리턴하기 때문에 더 느리다.
- sys.stdin.readline(): 내부적으로 더 빠르게 동작한다. 특히 대량의 입력을 받을 때 입출력 버퍼를 더 효과적으로 처리할 수 있다.
- Newline 문자 (\n) 처리:
- input(): 사용자가 엔터를 누를 때까지 입력을 받는다. 엔터(개행 문자)도 문자열에 포함된다.
- sys.stdin.readline(): 엔터(개행 문자)까지 포함하여 한 줄을 읽는다. 따라서 문자열 끝에 개행 문자가 포함되며, 필요에 따라 rstrip() 메소드를 사용하여 제거할 수 있다.
- EOF(End of File) 처리:
- input(): 입력이 끝나면 빈 문자열을 반환한다.
- sys.stdin.readline(): 입력이 끝나면 빈 문자열 대신 '' 대신 None을 반환한다.
728x90
반응형
'Algorithm > 코딩테스트 (Python)' 카테고리의 다른 글
[프로그래머스][큐와데크] 프로세스 (1) | 2023.11.29 |
---|---|
[프로그래머스][스택] 올바른 괄호 (0) | 2023.11.28 |
[프로그래머스][해시] 전화번호 목록 (0) | 2023.11.22 |
[SWEA 5110][파이썬 S/W 문제해결 기본]. 7일차 - 수열 합치기 (1) | 2023.11.21 |
[SWEA 5108][파이썬 S/W 문제해결 기본]. 7일차 - 숫자 추가 (1) | 2023.11.18 |
댓글