kimjh9434   4년 전

흠냐... 저도 앵간하면 이런 질문을 자제하려고 하는데, 왜 틀렸는지 잘 모르겠군요.

적다보면 뭔가 생각이 정리되면서 문제가 풀리지 않을까 싶어서 질문을 올려봅니다.

우선 코드 설명먼저 해보자면,

 문자열 str 입력을 받고

2. 점 하나(".")를 입력받았으면 반복문에서 빠져나가서 종료합니다.

3. 계속 진행시 해당 문자열의 각 문자 x를 비교하는데

  3.1. x가 '[', '('면 그냥 stack s에 넣고

  3.2.  x가 ']', ')'면, 스택에서 값을 꺼내서 비교를 해야하는데

     스택이 비어있거나, 가장 최근 값이 본인의 괄호 쌍과 맞지 않으면, 

     'isCorrect'란 bool 값을 false로 해서 빠져나오고, 그렇지 않으면[=올바르면] pop을 하는 방식으로 진행했습니다.

4. 그렇게 모든 문자열을 다 검색한 이후에도, stack에 값이 남아있으면 틀리다고 표시하고

5. 최종적으로 isCorrect의 값에 따라 yes 또는 No를 출력... 

  이뤈... 적다보니 깨달은건데 "no"가 아니라 "No"를 출력했군요!!! 미친!!!

허헐... 허무하네요. 분명 맞는데??? 하면서 모든 반례를 다 넣어도 돌아갔었는데, 왜 틀릴까 하고 고민한 자신이 바보같군요.

No -> no로 바꾸니 풀리네요.

지금와서 보니 너무 멍청한 사례지만, 제가 문제푼 방법은 그냥 공유하는 차원에서 코드는 생략하고 글을 남겨봅니다.

pichulia   4년 전

고무오리인형 디버깅...

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