1152번 - 단어의 개수
첫번째 if (w==' ') 조건 대신 if (w==' ' || w=='\n') 을 입력하니,
성공이 되었습니다만
위 다섯가지 조건을 확인하여 성공하였는데, 왜 개행문자를 고려함으로써 문제가 성공되었는지 의문입니다.
입력의 끝에 개행 문자도 들어오기 때문입니다. 이는 잘 만들어진 문제라면 반드시 지키는 사항입니다. (일부 옛날 문제들은 지키지 않는 경우가 있습니다.)
답변 감사합니다!
개행문자가 단어로 인식되어 예제 풀이에 오류가 발생했던거 같습니다.
질문이 있습니다!
혹시 이 문제처럼 입력의 끝에 개행 문자가 들어오는 것이 잘 만들어진 문제라고 말씀하시는겁니까?
"영어 대소문자와 띄어쓰기로 이루어진 문자열" 이라는 조건이 있기 때문에 개행문자를 단어로 인식하게 코드를 짠 제 잘못이었던것 같습니다.
line의 정의가 본래 끝에 개행이 있을 것을 포함하기 때문에 well-formed input이라면 모든 줄에는 끝에 개행이 있어야 합니다. BOJ에서도 끝에 개행이 없는 경우를 발견할 경우 이를 수정할 것을 요청하도록 하고 있습니다.
댓글을 작성하려면 로그인해야 합니다.
dongsuni 5년 전 1
첫번째 if (w==' ') 조건 대신 if (w==' ' || w=='\n') 을 입력하니,
성공이 되었습니다만
위 다섯가지 조건을 확인하여 성공하였는데, 왜 개행문자를 고려함으로써 문제가 성공되었는지 의문입니다.