1157번 - 단어 공부
혼자 앓다가 도저히 모르겠어서 질문 올립니다.
현재 이 코드는 96%에서 틀렸다고 나오는데요
제 코드에서 10~11행을 주석처리하고 9행의 주석처리를 해제한다음 채점하면 결과가 맞게 나옵니다.
또한 9행부터 11행까지를 전부 주석처리하고 gets(ch); 만 추가해도 정답이 나옵니다.
결국 fgets로 문장을 받는 부분에 오류가 있다는 말인데, 이 부분이 도저히 이해가 되지 않습니다ㅠㅠ
fgets로 문자열을 받으면 문자열의 마지막에 있는 '\n'까지 받아진다고 알고 있어서 11행을 추가했고, 실제로 11행만 주석처리를 하면 처음부터 아예 틀린 결과가 나옵니다.
어떤 부분에서 틀리게 된 건지 알고 싶어서 질문 드립니다.
또한 제 코드는 시간이 12ms가 나오는데, 다른 맞추신 분들과 제 코드가 얼추 비슷한 것 같은데 왜 다른 분들은 4ms안에 돌아가는 건지도 궁금합니다.
답변 부탁드립니다ㅠㅠ
fgets 는 버퍼만 충분하면 EOF 까지 읽어들이네요.. 그래서, \n 이 있을 수도 있겠는데..
현재 코드는 주어진 TC 의 문자열이 \n 이 없다면 마지막 글자를 지우는게 문제가 아닐지..
마지막이 \n 인지 확인하고, \n 을 null char(\0) 로 해주시면 어떨까 싶으네요..
그대로 했더니 맞았네요 감사합니다!ㅎㅎㅎ
댓글을 작성하려면 로그인해야 합니다.
cyclone472 6년 전
혼자 앓다가 도저히 모르겠어서 질문 올립니다.
현재 이 코드는 96%에서 틀렸다고 나오는데요
제 코드에서 10~11행을 주석처리하고 9행의 주석처리를 해제한다음 채점하면 결과가 맞게 나옵니다.
또한 9행부터 11행까지를 전부 주석처리하고 gets(ch); 만 추가해도 정답이 나옵니다.
결국 fgets로 문장을 받는 부분에 오류가 있다는 말인데, 이 부분이 도저히 이해가 되지 않습니다ㅠㅠ
fgets로 문자열을 받으면 문자열의 마지막에 있는 '\n'까지 받아진다고 알고 있어서 11행을 추가했고, 실제로 11행만 주석처리를 하면 처음부터 아예 틀린 결과가 나옵니다.
어떤 부분에서 틀리게 된 건지 알고 싶어서 질문 드립니다.
또한 제 코드는 시간이 12ms가 나오는데, 다른 맞추신 분들과 제 코드가 얼추 비슷한 것 같은데 왜 다른 분들은 4ms안에 돌아가는 건지도 궁금합니다.
답변 부탁드립니다ㅠㅠ