문제 설명
이번 문제는 EOF(End Of File)을 이용해야 해결할 수 있다는것을 유의합니다.
try
~except
예외처리 구문에 대해 이해하고 있다는것을 기준으로 설명합니다.
풀이
완성된 코드는 다음과 같습니다.
1
2
3
4
5
while True:
try:
print(input())
except EOFError:
break
문제를 살펴보면 입력이 주어지는데 이 입력은 최대 100줄까지 들어올 수 있다고 합니다.
또한 각 줄은 100자를 넘지 않으며, 빈 줄은 주어지지 않는다고 설명되어있습니다.
기존에 입출력 관련 문제들은 정확히 몇줄정도가 들어오거나 조건을 입력 받으면 뚜렷한 값이 대입되기 때문에 별 문제가 없었으나, 이번 문제에서 “입력은 최대 100줄까지 들어올 수 있다.” 이 말은 입력이 최대 100줄까지 주어지는데, 이 말은 즉 0~100번 사이중 랜덤한 만큼의 입력이 주어진다는 의미입니다.
간단 명료하게 이야기하자면, 0~100줄 사이의 랜덤한 입력이 주어지고나서 프로그램을 Ctrl + Z 또는 Ctrl + D로 종료하겠다는 의미가 됩니다.
이러한 방식으로 프로그램을 종료하는것을 EOF (End Of File)이라 칭합니다.
파이썬에서는 이러한 종료 방식, 즉 일종의 Error를 명시적으로 일컫는 예약어인 EOFError
가 있습니다.
즉 위 예제는 임의의 값을 계속해서 입력받다가 EOFError
가 캐치되면 반복문을 중단시키고 프로그램을 종료합니다.
실행 결과
1
입력받은 값 출력
입력받은 값을 출력하다가
EOF Error
가 발생하면 프로그램을 종료합니다.