본문 바로가기
CS/알고리즘

백준 11718 - input(), sys.stdin.readline(), sys.stdin.readlines()

by 데브겸 2023. 9. 20.

 

백준 11718 그대로 출력하기 문제를 통해 파이썬의 입출력에 대해서 살짝 알아보았음

 

아래 풀이로 성공

while True:
    try:
        print(input())
    except:
        break()

 

하지만 조금 더 빠른 입출력을 위해 sys.stdin을 사용할 필요가 있다는 것을 알게 됨. 

 

input()은 입력을 받고 문자열 변환 개행 제거 등의 작업이 들어가지만, sys.stdin.readline()이나 readlines()는 그렇지 않음.

따라서 sys를 사용하면 .rstrip() 등으로 \n 제거해야 하지만 속도에서나 메모리 사용에서나 더 효율적.

 

또한 입력값이 없을 때 input()은 EOFError를 발생시키지만, sys.stdin.readline()은 빈 문자열을 반환

 

sys.stdin에는 readline()과 realines()가 있는데 readline()은 한 줄을 내용을 반환, readlines()는 리스트로 반환

 

# readline()
import sys

while True:
    try:
        word = sys.stdin.readline().rstrip()
        # 입력이 없어 빈 문자열 출력되면 break
        if word == "": 
            break
        else:
            print(word)
    # 그 외 오류가 있어도 break
    except:
        break

 

# readlines()

import sys

inputs = sys.stdin.readlines()
for input in inputs:
    print(input.rstrip())

'CS > 알고리즘' 카테고리의 다른 글

백준 11721, 2742  (0) 2023.09.22
백준 11719 & 11720  (0) 2023.09.21
백준 10951, 10952 (python)  (1) 2023.09.19
[이코테] 다이나믹 프로그래밍 - 금광  (0) 2023.02.25
[이코테] 다이나믹 프로그래밍 - 바닥 공사  (2) 2023.02.23