## 문제
BOJ 10951 A+B - 4 (EOFError)
## 풀이
두 정수를 입력받아서 A+B를 출력하는 프로그램을 작성하시오,
각 테스트케이스마나 A+B를 출력한다
더 입력받는게 없으면 멈춰야 되는 상황
## 코드
_input()은 EOFError을 발생시킵니다._
반복문에서 어떻게 해야 종료가 된다는 이야기가 없는데, EOF를 발생시키면 된다. 운영체제에서 파일의 끝을 탐지하는 방법은 운영체제마다 약간씩 다르다. ctrl + Z(윈도우), ctrl + D (linux) 으로 확인 가능하다.
EOF는 end of file을 의미하며, 더이상 읽을 것이 없을때 프로그램을 종료하는 방법을 아는 문제라고 한다. 언어마다 방법이 다르므로 레퍼런스 참고하여 사용법 정확히 숙지하기.
그냥 엔터를 눌러서 공백을 입력하는것과 다르다.
이 경우 ctrl + C 로 KeyboardInterrupt를 발생시켜서 확인 가능하다. ctrl + Z 를 여러번 눌러야 EOF가 발생하는 환경도 있다고 한다. except 앞에 내용이 없도록 해서 모든 에러를 처리해도 답으로 처리가 된다는 이야기도 있다. 다만 엄밀하게 따지면 정답은 아닌것.
_(Python) sys.stdin.readline()은 빈 문자열을 반환합니다_
input()은 EOF에러를 발생시키므로 except를 통해 예외처리를 하여 정상적으로 프로세스를 종료할 수 있는 반면, sys.stdin readline()은 빈 문자열 발생으로 입력초과를 만들어낸다.
readline은 빈 문자열을 반환하기때문에 정답이 아닌것.
파일의 끝 부분까지 한번에 가져올수 있고, 가져온 내용 안에서 반복문을 사용하여 쉽게 문제를 해결 가능하다.
readlines() 을 사용하여 예외처리 없이 해결한 경우.
이런 풀이도 있는데 아직은 모르겠다.
0 댓글