본문 바로가기

알고리즘/백준 문제 풀이

[Python] 11719번 그대로 출력하기 2

728x90

https://www.acmicpc.net/problem/11719

 

11719번: 그대로 출력하기 2

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

www.acmicpc.net


 

22/10/08

 

 

의외로 몇 번 틀렸던 문제로, 오답의 원인을 알아내면서 의외의 수확을 거둘 수 있었던 문제였다.


 

문제 접근 방식:

 

 

구현하는 것 자체는 어렵지 않은데, 몇 번 틀렸었다.

 

그 이유는 input대신에 sys.stdin.readline을 사용했다는 점이다.

 

나는 이 문제를 try except구문을 사용해서 EOFError가 되면 종료하는 형식으로 했는데, sys.stdin.readline에서는 EOF를 받으면 EOFError가 일어나지 않고 그냥 빈 문자열을 리턴한다.

 

때문에 여러번 틀렸었고, 이를 유의해서 구현만 하면 맞았습니다를 받을 수 있다.


아래는 내가 위의 접근 방식과 같이 작성한 파이썬 코드이다. 더보기를 누르면 확인할 수 있다.

더보기
# 11719번 그대로 출력하기 2
# 구현, 문자열
'''
오답 정리:
input은 EOF를 받을 때 EOFError를 일으키지만
sys.stdin.readline은 EOF를 받을 때 빈 문자열을 리턴함.
따라서 이 상황에서 sys.stdin.readline으로 코드를 짜면 무한루프가 나옴.
'''
while True:
    try:
        string = input()
        print(string)
    except:
        break