코딩테스트

백준 입출력 문제 - EOFError 활용하기(파이썬)

수연 (Suyeon) 2023. 11. 25. 00:54
반응형

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

 

11719번: 그대로 출력하기 2

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

www.acmicpc.net

 

11719번은 빈 줄도 입력해야 되고 공백도 입력되어야 하기 때문에 어떻게 하면 좋을지 고민하다가 입력은 최대 100줄이라고 해서 아래처럼 100번 반복해서 문제를 해결했습니다.

for i in range(100):
  try:
    text = input()
    print(text)
  except:
    print()

 

근데 아무리 생각해도 너무 비효율적인 코드라고 생각돼서 다른 방법이 없을까 하고 찾다가 EOFError를 알게 되었습니다.

입출력 문제에서 입력이 끝날 때까지 받고 종료해야할 때 자주 사용되는 예외처리가 EOFError라고 합니다. 그래서 이것을 활용한 코드로 다시 수정해보았습니다.

for i in range(100):
  try:
    text = input()
    print(text)
  except EOFError:
    break

 

덕분에 효율적인 코드를 구현하는 방법에 대해 알게 되었습니다.

728x90