문제

입력 받은 대로 출력하는 프로그램을 작성하시오.

입력

입력이 주어진다. 입력은 최대 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

+ Recent posts