6036 : 수식 균형 검사 + 계산
•시간제한: 2.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
소괄호와 사칙연산자 및 한 자리 자연수로 구성된 중위 표기식 수식이 주어집니다.
해당 수식이 올바른 괄호 균형과 유효한 연산 구조를 가졌는지 검사하고, 유효한 수식이라면 계산 결과를 출력하십시오.
만약 괄호 쌍이 맞지 않거나 연산자 배치가 규칙에 맞지 않는 잘못된 수식이라면
[제약 조건]
• 테스트케이스 수 $T$: $1 \le T \le 50$ (정수)
• 각 수식 길이: $1 \le$ 길이 $\le 200$
• 피연산자는 0~9, 연산자는 +, -, *, /
해당 수식이 올바른 괄호 균형과 유효한 연산 구조를 가졌는지 검사하고, 유효한 수식이라면 계산 결과를 출력하십시오.
만약 괄호 쌍이 맞지 않거나 연산자 배치가 규칙에 맞지 않는 잘못된 수식이라면
INVALID를 출력해야 합니다.[제약 조건]
• 테스트케이스 수 $T$: $1 \le T \le 50$ (정수)
• 각 수식 길이: $1 \le$ 길이 $\le 200$
• 피연산자는 0~9, 연산자는 +, -, *, /
입력 설명
첫째 줄에 테스트케이스 수 $T$가 주어집니다. ($1 \le T \le 50$)
둘째 줄부터 $T$개의 줄에 수식이 공백 없이 주어집니다. (길이 $\le 200$)
둘째 줄부터 $T$개의 줄에 수식이 공백 없이 주어집니다. (길이 $\le 200$)
출력 설명
각 수식에 대해 유효하면 정수 연산 결과를, 그렇지 않으면
INVALID를 줄바꿈하여 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
(3+4)*5
3+*4
((3+4)
출력 예시
COPY
복사되었습니다!
복사되었습니다!
35
INVALID
INVALID
도움
스택으로 괄호 쌍을 먼저 검사한 뒤, 후위 표기식으로 변환을 시도할 때 피연산자와 연산자의 개수 균형 및 연산 불가 상황을 감지해 INVALID를 판단합니다.