인프런 커뮤니티 질문&답변

무조건돌격님의 프로필 이미지
무조건돌격

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-O

2-O 질문입니다.

해결된 질문

작성

·

234

0

예제 입력을 복붙하면 빈칸뜨고 그냥 제가 스스로 입력할때도 (), [()] 이런거 하면 작동하다가 )( 이런식으로 안되는것을 입력해도 빈칸뜨는데 이유를 모르겠네요..

 

http://boj.kr/59a91e80c7e44780bab1579a8fdf1083

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 돌격님 ㅎㅎ

틀린 코드가 있어서 그런 것 같아요.

			else if(s[i] == ')'){
				if(stk.top() == '(') stk.pop();

이코드를 보시면 top()을 참조하고 있죠? 이 때는 항상 size를 체크하시는게 중요합니다. 그래서 런타임에러가 발생한 것같습니다. 에러가 발생되면 이상하게 출력이 안되는 등이 발생하게 됩니다.

예를 들어

)가 들어왔는데 stk에 (자체가 없는데 top()이라는 것을 통해 참조를 하게 되면

없는데 참조하면서!!! 런타임에러가 발생하는 것이죠.

 

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

무조건돌격님의 프로필 이미지
무조건돌격

작성한 질문수

질문하기