dongsuni   2년 전

첫번째 if (w==' ') 조건 대신 if (w==' ' || w=='\n') 을 입력하니, 

성공이 되었습니다만

  1. 앞에 공백이 있는 경우
  2. 뒤에 공백이 있는 경우
  3. 양쪽 다 공백이 있는 경우
  4. 공백만으로 나타나는 경우
  5. 문자열 초과?(char 형식으로만 받기에 문제일거라 생각되지는 않습니다.)

위 다섯가지 조건을 확인하여 성공하였는데, 왜 개행문자를 고려함으로써 문제가 성공되었는지 의문입니다.

djm03178   2년 전

입력의 끝에 개행 문자도 들어오기 때문입니다. 이는 잘 만들어진 문제라면 반드시 지키는 사항입니다. (일부 옛날 문제들은 지키지 않는 경우가 있습니다.)

dongsuni   2년 전

답변 감사합니다! 

개행문자가 단어로 인식되어 예제 풀이에 오류가 발생했던거 같습니다.


질문이 있습니다!

혹시 이 문제처럼 입력의 끝에 개행 문자가 들어오는 것이 잘 만들어진 문제라고 말씀하시는겁니까?

dongsuni   2년 전

"영어 대소문자와 띄어쓰기로 이루어진 문자열" 이라는 조건이 있기 때문에 개행문자를 단어로 인식하게 코드를 짠 제 잘못이었던것 같습니다.

djm03178   2년 전

line의 정의가 본래 끝에 개행이 있을 것을 포함하기 때문에 well-formed input이라면 모든 줄에는 끝에 개행이 있어야 합니다. BOJ에서도 끝에 개행이 없는 경우를 발견할 경우 이를 수정할 것을 요청하도록 하고 있습니다.

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