Study/Baekjoon
[Python] 백준 11718번 그대로 출력하기 | EOFError, sys.stdin
yeorii
2023. 3. 24. 15:45
그대로 출력하기
문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력
입력받은 그대로 출력한다.
예제 입력 1
Hello
Baekjoon
Online Judge
예제 출력 1
Hello
Baekjoon
Online Judge
내 풀이
while True:
try:
print(input())
except EOFError:
break
EOFError (입력값이 없을 때 나타나는 에러) 가 뜨면 while 반복문을 break하도록 짰다.
sys.stdin 이용한 풀이
import sys
for line in sys.stdin:
print(line, end="")
그동안 티스토리에 sys.stdin.readline(), sys.stdin.readlines()들은 다뤘는데 정작 그 기본인 sys.stdin에 대해서는 제대로 안찾아본 것 같아서 이번에 찾아봤다!
sys.stdin
아래는 sys.stdin에 대한 python 공식문서!
https://docs.python.org/3.10/library/sys.html#sys.stdin
정리하자면,
sys.stdin
: 여러 줄 입력 받을 때
이때 end=""를 하지 않고 이대로 출력하면 ['1\n', ...] 이런 식으로 개행 문자와 함께 출력된다.for line in sys.stdin: print(line)
sys.stdin.readline
: 한 줄 입력 받을 때a, b = sys.stdin.readline().split()
- 이 함수로 여러 줄 입력 받고 싶을 때는 for loop를 사용하면 된다.
a = [sys.stdin.readline() for _ in range(N)]
- 이 함수로 여러 줄 입력 받고 싶을 때는 for loop를 사용하면 된다.