[백준] 11718번 : 그대로 출력하기

My_Code·2023년 8월 10일
post-thumbnail

📝 문제

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

📥 입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

📤 출력

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

❌ 틀린 코드

import sys

while True:
    try:
        str = sys.stdin.readline().rstrip()
        print(str)
    except:
        break

처음에는 코드가 정상적으로 동작하기에 잘 되겠거니 생각했지만 출력 초과라는 오류 문구가 생겨서 문제를 틀리고 말았다.

이게 왜 틀린걸까? 라고 생각하고 찾아 봤는데

sys.stdin.readline().rstrip()

위 코드는 input() 함수처럼 입력을 받는 코드지만 입력이 없더라도 에러가 발생하지 않기에 반복문을 빠져나오지 못한 것이다.

sys.stdin.readline().rstrip() 코드는 입력이 없으면 에러가 아니라 그냥 빈 문자를 반환하기에 실제도 에러로 받아드리지 못한 것이다.

⭕️ 정답 코드

그렇기에 그냥 input() 함수를 사용하거나

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

sys.stdin.readline().rstrip() 코드를 사용하려면 빈 문자를 인식하도록 조건문을 사용하면 된다.

import sys

while True:
    str = sys.stdin.readline().rstrip()
    if str != '':
        print(str)
    else:
        break
profile
조금씩 정리하자!!!

0개의 댓글