museum114   5년 전

우선 가독성이 떨어지는 점 죄송합니다... 

제가 생각한건 우선 배열로 stack을 구현하고

( 혹은 [ 는 바로바로 스택에 넣어줍니다.

그러다가 ) 나 ]를 만나면 작업에 들어갑니다. 

예를 들어 ')'를 만나면 '('가 나올 때 까지 인덱스를 줄이면서 마주치는 모든 정수를 더합니다.

그리고 (를 만나면 정수의 합을 (가 있던 곳에 넣습니다.

이런 식으로 스택에 정수만 남도록 하고

제일 마지막에 스택에 있는 모든 정수를 더해서 출력합니다.

질문 게시판에 있는 모든 반례를 다 넣어보고 스스로도 여러번 넣었는데 얄짤없이 틀렸습니다가 떠서... 질문드립니다 ㅠㅠ

djm03178   5년 전

stack_array에 들어있는 값이 char의 범위를 초과할 수도 있고, 우연히 괄호 문자의 아스키 값과 일치할 수도 있습니다. 어떻게 구분할 수 있을까요?

dyk777   5년 전

char로 선언한 s 배열을 스택으로 쓰고 계신데, 이 배열에다가 int로 계산된 값을 push()하고 있습니다.

museum114   5년 전

두 분다 감사합니다! 등잔 밑이 어둡네요 ㅠㅠ

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