2일차 - 그대로 출력하기2 (백준 11719번 )

2025. 1. 14. 18:18코테 스터디(Python)

 

문제

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


입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.

출력

입력받은 그대로 출력한다.


예제 입력 1 복사

    Hello

Baekjoon     
   Online Judge    

예제 출력 1 복사

    Hello

Baekjoon     
   Online Judge    

풀이

처음에는 줄바꿈마다 받아오면 된다고 생각해서 했는데

문제가 풀어지지 않았다.

 

방법1

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

알고보니 이 문제는 파일의 끝(EOF)을 판단할 수 있는지를 묻는 문제였다.

try-except 문을 사용하여 파일을 input()으로 받아오고 더이상 읽어올게 없으면 EOFError 발생시켜 종료시키는 방식이다.

 

+EOFerror) 더이상 읽어들일 것이 없을 때 발생하는 에러 

 

방법2

import sys
print(sys.stdin.read())

다른 방법으로는  input으로 받아오지 않고 sys.stdin.read()를 사용하여 입력값을 받아온다.

sys.stdin.read()는 한번에 읽어와 버퍼에 저장하여 입력값이 많아질수록 받아오는 속도가 input()과 차이가 커진다.

 

+ input()은  문자열 변환, 줄 바꿈 제거 등 추가적인 과정이 있고, 데이터가 하나 씩 버퍼에 들어감

+ sys.stdin.readline()은 문자열로 변환, 줄 바꿈 과정이 없으며 데이터가 한 번에 버퍼에 들어감

 

 

 

 

 

참고글: https://www.acmicpc.net/board/view/28332