파이썬의 입력에서 가장 먼저 배우는 것은 input() 입니다. 하지만 데이터 양이 많아지면 input()은 속도가 느려 시간 초과가 발생할 수 있습니다. 이때 사용하는 것이 바로 sys.stdin.readline 입니다.
input() vs sys.stdin.readline
- input()
- 속도가 상대적으로 느림
- 입력값에서 줄바꿈 문제(개행문자 \n)를 자동으로 제거함
- 내장함수 (built-in)
- 인자로 안내 문자열("숫자를 입력하시오:")을 출력할 수 있음
- sys.stdin.readline
- 속도가 매우 빠름
- 줄바꿈 문자(\n)를 포함하여 읽음
- 안내 문자열을 넣을 수 없음
- sys 모듈의 표준 입력 객체
sys.stdin.readline 사용법
- 기본 사용법 : sys 모듈을 먼저 import
import sys
# 한 줄을 읽어와서 저장 (줄바꿈 문자 \n 포함됨)
data = sys.stdin.readline()
- 개행 문자 제거(.rstrip()) : 줄바꿈 기호까지 통째로 읽어오기에 오른쪽 공백 제거 필요
# 오른쪽 공백(줄바꿈 포함) 제거
name = sys.stdin.readline().rstrip()
- 여러개의 정수 입력 : split(), map()을 조합하여 사용
# 예: 10 20 30 입력 시
a, b, c = map(int, sys.stdin.readline().split())
sys.stdin.readline 이 빠른 이유
- 버퍼링(Buffering) 방식의 차이
- input() 함수는 한 번에 한 글자씩 읽어 들임
- sys.stdin.readline는 입력 스트림을 버퍼(buffer)에 한꺼번에 담아두고 한 줄씩 가져옴
- --> 시스템 호출 횟수가 훨씬 적다.
- 추가 작업의 유무
- input() 은 입력받은 값에서 줄바꿈 문자를 제거하고, 프롬프트 메시지를 처리 (오버헤드 발생)
- sys.stdin.readline은 추가적인 로직 없이 입력된 문자를 통채로 읽어옴
---------------------NEXT POST-------------------
2026.01.12 - [프로그래밍/Coding] - [기초문법] sys.stdin ; 3 method ; in python
[기초문법] sys.stdin ; 3 method ; in python
파이썬에서 입력을 받을 때 가장 성능이 좋은 sys.stdin의 세 가지 활용법을 비교해 보겠습니다. 모든 방식은 공통적으로 줄 바꿈 문자(\n)를 포함한다는 점을 기억하세요! 1. sys.stdin.readline() : 딱 한
from-biology.tistory.com
'프로그래밍 > Coding' 카테고리의 다른 글
| [기초문법] Python Counter object (0) | 2026.01.16 |
|---|---|
| [기초문법] sys.stdin ; 3 method ; in python (1) | 2026.01.12 |
| [자료구조] 깊이우선탐색(DFS) vs 너비우선탐색(BFS) (0) | 2025.02.02 |
| [자료구조] 최단거리 알고리즘 문제 정리 (0) | 2025.01.30 |
| [문제리뷰] 수식 최대화 -python (programmers,Lv2) (0) | 2024.12.29 |