위 코드는 s.size() && s.top() == '(' 가 아니라면 else문 즉 push을 실행시키니
비어있거나 top이 '('이 아닐때 push가 작동됩니다.
아래 코드는 push가 걸려있는 else와 연계되어있는 문장은 size이니
비어있지 않은 경우 push가 되지 않습니다.
그래서 예를들어 입력이 다음과 같다면
([)])
.
1. '('가 스택에 들어감. 현재 스택 : (
2. '['가 스택에 들어감. 현재 스택 : ([
3. ')'가 들어왔는데 스택이 비어있지 않으므로 if(s.size())에 있는 코드가 실행되는데 top이 '('이 아니므로 아무일도 일어나지 않음. 현재 스택 : ([
4. 그 후는 매치되는 부분을 정삭적으로 판단하여 ( [ ] ) 매치 된다고 파악
그래서 답은 no인데 yes가 뜹니다.
edol1l1843 2년 전 1
위에 코드는 맞았다고 나옵니다. 아래 코드는 20%까지 갔다가 틀렸다고 나옵니다.
다른게 이중if문사용과 && 논리 연산자 사용 차이인데 같은
결과가 나오는게 맞는게 아닌가해서 질문 올립니다.