본문 바로가기

프로그래밍/Coding

[기초문법] sys.stdin.readline (feat. input())

파이썬의 입력에서 가장 먼저 배우는 것은 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