문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력
입력받은 그대로 출력한다.
예제 입력 1
Hello
Baekjoon
Online Judge
예제 출력 1
Hello
Baekjoon
Online Judge
그대로 출력하면 된다고해서 단순히
print(input())
했는데 틀렸다.ㅋㅋㅋ
지금 생각해도 웃기네
이 한 줄 코드로 끝낼거면 문제를 안 냈을 거 같다는 생각에 다시 문제를 봤다.
보니깐 여기서는 우리가 몇 번 입력할 지에 대한 얘기가 전혀없었다.
그래서 어떻게 하면 되지.. 라는 생각에 구글링을 통해 찾아보니
while True:
try:
print(input())
except EOFError:
break
이렇게 하면 된다고 한다.
보고 바로 이해했는데
이게 while True로 얼마든지 입력을 받을 수 있게 하고
try except 구문을 통해 언제 멈출지 정해줄거다.
그런데 여기서 만약에 사용자의 입력이 멈추면 이 반복문도 그만해야하기에
EOFError(End of file error)를 걸어준다.
이게 정답이라고 한다.
다른 코드도 있는데
import sys
words = sys.stdin.readlines()
for word in words:
print(word.rstrip())
이게 더 효율적이라고 한다.
반복문으로 여러 줄 입력을 받는 상황에서는 반드시 sys.stdin.readline()을 사용해야 시간초과가 생기지 않는다고 한다.
sys.stdin.readline() 사용법은 따로 다시 공부해서 올려야겠다.
'알고리즘' 카테고리의 다른 글
백준 파이썬 - 1316 (0) | 2024.01.18 |
---|---|
백준 파이썬 - 1157 (2) | 2024.01.18 |
백준 파이썬 - 1152 (0) | 2024.01.16 |
백준 파이썬 - 2675 (0) | 2024.01.16 |
백준 파이썬 - 10809 (0) | 2024.01.15 |