# 오답
아래의 코드는 왜 오답이 될까?
abc(엔터)abc 의 입력을 받고 있다고 하자.
첫 번째 줄인 abc는 제대로 받아지나, 첫 번째 줄 마지막의 (엔터)가 입력에 남아있게 된다.
그 이후, scanf를 사용하면 (엔터)로 인하여 한 글자도 입력되지 않고, 따라서 변환 실패로 인하여 scanf의 반환값이 0이 된다.
따라서 첫 번째 줄만 출력하고 멈추게 된다.
# 오답 2
scanf의 %s는 공백 문자 (탭, 스페이스, 엔터)를 기준으로 나눈다.
따라서 입력에 공백이 있을 경우 아래의 코드는 제대로 동작하지 않는다.
# 오답 3
마지막으로 아래의 Python 3 코드를 살펴보자.
로컬에서 돌려보면 제대로 돌아가는 것 같다. 왜 문제가 생기는 걸까?
Python의 input 함수는 EOF를 만나면 EOFError를 발생한다.
따라서 입력의 마지막 줄을 받은 뒤, 다음 루프에 들어가면 EOFError가 발생해서 stderr에 출력하게 되는 것이다...
이해가 안 되면 아래 짤을 보자. (^Z는 Windows에서 EOF를 나타내는 문자이다)
저 Traceback (...) 이라고 뜨는게 문제이다. stderr에 출력하였으므로 RTE를 받는다.
## 해결책
되도록이면 sys.stdin와 sys.stdout을 사용하도록 하자.
이 댓글은 게시물 작성자가 삭제하였습니다.
이건 백준이 거지같은게 맞지 이걸왜 여기서 설명하구있어
??
똑같은 문제가 다른 온라인 저지에 나와도 결과는 같을텐데
입출력 다시 공부해라 뭐가 문제지도 모르네 ㅋㅋㅋ