another_op   4년 전

Scanner를 두번 쓴 걸 하나로 고쳤더니 런타임 에러가 해결되고 맞았다고 나옵니다.

하지만 두 코드 모두 이클립스에서는 올바르게 동작하는데, 왜 백준에서는 런타임 에러가 발생했을까요?

정말 궁금하네요. 예전에 C공부를 할때도 scanf를 연속으로 두번 썼을 때 어떤 오류가 났었던거 같은데 그거랑 관련이 있을까요?

nahwasa   4년 전

좀더 고수님이 제대로된 답변을 달아주실껍니다. 일단 저로썬 스캐너를 애초에 2개 쓸 필요자체가 없어서 (실제로도 아예 없구요) 생각자체를 못해본 부분입니다.

일단 System.in은 시스템의 인풋스트림입니다.

그러니까 스캐너2개는 무슨상황이냐면 파일 하나를 두개가 동시에 읽으려는 상황입니다. 둘 중 하나가 읽으면 그녀석은 무조건 커서를 한줄 내릴껍니다! 즉 운좋게 서로 따로 읽어서 될수도 있지만 때에따라 안될수도 있는거죠. 서로 간섭이 날테니까요. 애초에 두개를 쓸 이유가 없는 예외적인 상황이라 생각됩니다.

물론 파일로 치면 서로 다른 파일에 대한 스캐너 2개는 맞습니다. 그건 간섭이 없죠!

댓글을 작성하려면 로그인해야 합니다.