31번 줄에서, 문자열의 끝임을 확인하는 걸 같은 문자인지로 비교해서 문제가 생깁니다. 문자열의 크기와 현재 위치를 비교하는 방식으로 확인해야 합니다. 그렇지 않으면, 단어가 끝나지 않았어도 마지막 문자와 현재 문자가 같다는 이유만으로 단어가 끝난 것으로 인식됩니다.
17413번 - 단어 뒤집기 2
말씀하신 31번째 줄을 아래와 같이 바꿨습니다. (주석_이전코드)
/*inputstr[i] == inputstr.back()*/ i+1==inputstr.length()
실행하니까 정상적으로 작동하네요. 덕분에 크게 배워갑니다. 너무 감사합니다 ㅠㅠ
말씀하신 방법도 좋은 방법입니다! 감사히 듣겠습니다 ㅎㅎ 다만 가끔 문자열을 str로 안받고 char arr[n]처럼 길이를 지정해두고 길이에 딱 맞추어서 문자열을 입력 받을때 종결문자 '\0'이 짤려서 들어올 때도 있더라구요. (물론 그럴 경우가 거의 드물겠지만요 ㅎㅎ) 그때그때 맞추어서 방법을 잘 활용해 보겠습니다! 감사합니다~
if (inputstr[i + 1] == ' ' || inputstr[i + 1] == '<' || inputstr[i+1] == '\0'/* i+1==inputstr.length()*/) break;
말씀하신 방법대로 코드를 바꾸었더니 잘 작동하네요 감사합니다~
댓글을 작성하려면 로그인해야 합니다.
spring7424 2년 전
C++ 사용해서 코드 풀었고 문제에 제시된 7개의 입력 모두 통과됩니다.
문제를 제가 잘못 이해하고 있는건지,,3%에서 계속 틀렸다고 하네요 ㅠ
잘못된 점 지적해주시면 진짜 너무 감사하겠습니다!