spring7424   2년 전

C++ 사용해서 코드 풀었고 문제에 제시된 7개의 입력 모두 통과됩니다.

문제를 제가 잘못 이해하고 있는건지,,3%에서 계속 틀렸다고 하네요 ㅠ

잘못된 점 지적해주시면 진짜 너무 감사하겠습니다!

adfsfsf   2년 전

31번 줄에서, 문자열의 끝임을 확인하는 걸 같은 문자인지로 비교해서 문제가 생깁니다. 문자열의 크기와 현재 위치를 비교하는 방식으로 확인해야 합니다. 그렇지 않으면, 단어가 끝나지 않았어도 마지막 문자와 현재 문자가 같다는 이유만으로 단어가 끝난 것으로 인식됩니다.

spring7424   2년 전

말씀하신 31번째 줄을 아래와 같이 바꿨습니다. (주석_이전코드)

/*inputstr[i] == inputstr.back()*/ i+1==inputstr.length()

실행하니까 정상적으로 작동하네요. 덕분에 크게 배워갑니다. 너무 감사합니다 ㅠㅠ

adfsfsf   2년 전

이제 보니 더 좋은 방법이 있는데 너무 직관적이기만 한 답변을 드렸었네요. 문자열을 입력 받으면 마지막에 항상 종결문자 '\0'이 들어가나는 걸 이용하면 코드를 거의 안 바꿔도 되는 거였네요...

spring7424   2년 전

말씀하신 방법도 좋은 방법입니다! 감사히 듣겠습니다 ㅎㅎ 다만 가끔 문자열을 str로 안받고 char arr[n]처럼 길이를 지정해두고 길이에 딱 맞추어서 문자열을 입력 받을때 종결문자 '\0'이 짤려서 들어올 때도 있더라구요. (물론 그럴 경우가 거의 드물겠지만요 ㅎㅎ) 그때그때 맞추어서 방법을 잘 활용해 보겠습니다! 감사합니다~ 

spring7424   2년 전

if (inputstr[i + 1] == ' ' || inputstr[i + 1] == '<' || inputstr[i+1] == '\0'/* i+1==inputstr.length()*/) break;

말씀하신 방법대로 코드를 바꾸었더니 잘 작동하네요 감사합니다~

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