love1358   2년 전

이 코드에서 } 나 ) 로 시작하는 문자열을 넣으면 바로 오류가 발생하는데 어느부분이 잘못 된걸까요ㅠㅠ

wizardrabbit   2년 전

안녕하세요?

']' 나 ')' 로 시작하는 데이터가 입력으로 주어졌을 때 오류가 발생하는 원인은 아래와 같습니다:

스택이 비어 있는 상태에서 top() 이 호출되어 스택의 맨 위에 있는 원소를 가져올 수가 없어 예외가 발생합니다.

따라서 이 문제를 해결하기 위해서는 스택이 먼저 비어있는 지를 확인한 후, 스택이 비어 있을 경우에 대한 처리를 따로 해 주어야 합니다.

']' 나 ')' 가 주어졌는데 스택이 비어 있는 경우는 생각해 보면 절대로 균형잡힌 문자열이 될 수 없습니다. 왜냐하면 ']' 나 ')' 와 짝지을 '[' 나 '(' 가 생길 수 없기 때문입니다.

지금까지의 설명을 바탕으로 29~37번째 줄을 바꾼 코드를 첨부했습니다. 참고하시길 바라며, 문제 해결에 도움이 되었기를 바랍니다!

love1358   2년 전

우와... 정말 감사합니다. 덕분에 코드 잘 작동하네요 ㅠㅠ 

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