skyinyour   6년 전

VS 2013에서 입력값을 복사해서 실행시키면


e.PNG이렇게 되버립니다. 저 상태에서 엔터를 한번 더 쳐야하구요..!

테스트 케이스 한 개씩 돌려보면 다 맞게 나옵니다. 

그냥 넘어가려다가 이렇게 엔터를 더 쳐야하는지, 혹여나 이 문제때문에 틀린건지 잘 모르겠네요 ㅠㅠ

djm03178   6년 전

제대로 나왔다면 전부 NO가 아니라 3, 5번째가 YES가 나와야죠.

그리고 system("pause"); 를 하면 안 됩니다.

Green55   6년 전

일단 눈으로만 봤을 때 문제점은

1. S가 케이스가 끝나도 스택 안에 남은 찌꺼기들이 그대로 남아있습니다.

2. string은 c 스타일의 문자열과는 다르게 마지막 원소에 \0가 저장되있지 않습니다.

str.size()를 이용하거나, iterator를 이용하셔야합니다.

3. 32번째 if문에서 S가 비어있으면 )여도 스택에 들어갑니다.

djm03178   6년 전

@ssangba55

string::operator[] 는 C++11부터 문자열의 끝 인덱스에 대해 널 문자를 반환합니다.

http://en.cppreference.com/w/c...

If pos == size(), a reference to the character with value CharT() (the null character) is returned.

For the first (non-const) version, the behavior is undefined if this character is modified to any value other than CharT() .


Green55   6년 전

@djm03178 뜬금없이 새로운거 알아가네요 ㄷㄷ

skyinyour   6년 전

감사합니다 ㅠㅠ!!

걍 로직이 틀렸었네요 ... ㅋㅋㅋㅋㅋㅋㅋㅋ

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