우선순위 때문인 것 같습니다 &&가 ||보다 우선순위가 더 높습니다.
스택이 비어있는 경우 !op.empty() && op.top=='*' 가 false가 나올 것이고, 그다음 op.top()=='/'를 실행할 것인데
스택이 비어있을 때 top()으로 접근시 오류가 납니다.
1918번 - 후위 표기식
우선순위 때문인 것 같습니다 &&가 ||보다 우선순위가 더 높습니다.
스택이 비어있는 경우 !op.empty() && op.top=='*' 가 false가 나올 것이고, 그다음 op.top()=='/'를 실행할 것인데
스택이 비어있을 때 top()으로 접근시 오류가 납니다.
댓글을 작성하려면 로그인해야 합니다.
snna58 2년 전
31번째줄 while (!op.empty() && op.top() == '*' || op.top() == '/') 코드에서
( op.top() == '*' || op.top() == '/' ) 이렇게 괄호가 없어도 비쥬얼에서는 정상작동하는데
제출하니까 segfault가 생깁니다. 우선순위때문일까요? 왜 segfault가 생기는지 아시는분 있나요?ㅠㅠ