oyhskw   2년 전

우선 스택은 구조체를 이용해서 구현했습니다.

check와 calc이라는 두 가지의 스택을 사용해서 문제를 풀어봤는데요

check는 입력받은 문자열이 올바른 괄호로 구성되어있는지 확인하기 위한 스택입니다.

cacl은 입력받은 문자열을 통해 괄호의  값을 계싼하기 위한 스택입니다.

계산 원리는 )나 ]가 나오면 calc 스택에 top 값을 비교해서 만약 짝을 이루는 괄호이면 각각 pop 후 -2 또는 -3를 넣습니다.

만약 짝을 이루는 괄호가 아니면 그 괄호가 나올 때 까지 pop해서 temp에 저장하고 최종적으로 temp에 곱하기 2나 3을 한 후 다시 calc에 push합니다.

<참고로 2, 3이 아닌 -2, -3를 한 이유는  cal에 저장된 값이 40이면 아스키 코드 값으로 (가 되어서 잘못계산할 것 같아서 그랬습니다.>

아무튼 제 코드에 치명적인 오류나 반례가 존재한다면 알려주시면 감사드리겠습니다.!!!

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