SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
1. 숫자면 stack에 넣고
2. 연산자면 stack에서 숫자 2개 pop
3. 연산 후 다시 스택에 넣기
4. stack에 남은 수 출력
-> 이때 stack에 남은 수가 1인지 검사해야함!!!
이거 안해서 계속 틀렷음
T = int(input())
for test_case in range(1, T+1):
op = {'*': 2, '/': 2, '+': 1, '-': 1}
nums = list(input().split())
stack = []
ans = 0
for n in nums:
# 숫자면 stack에 추가
if '0' <= n <= '9':
stack.append(n)
# 연산자일때
elif n in op:
# 스택이 있으면 숫자 하나 빼기
if stack:
a = int(stack.pop())
# 스택이 있으면 숫자 하나 빼기
if stack:
b = int(stack.pop())
# 연산자별로 연산해서 스택에 넣기
if n == '+':
stack.append(b+a)
elif n == '-':
stack.append(b-a)
elif n == '*':
stack.append(b*a)
else:
stack.append(b//a)
# 스택에 아무것도 없는데 연산자가 들어오면 ans +1
else:
ans += 1
else:
ans += 1
# 숫자도 연산자도 아닌게 들어오면 pass
else:
pass
# ans == 0 이고 stack의 수가 1이면
if ans == 0 and len(stack) == 1:
print(f'#{test_case} {stack[0]}')
else:
print(f'#{test_case} error')
'SWEA' 카테고리의 다른 글
[SWEA] 4881 배열 최소 합 - python (2) | 2023.02.20 |
---|---|
[SWEA] 4875 미로(백트래킹) - python (0) | 2023.02.19 |
[SWEA] 4873 반복 문자 지우기 -python (0) | 2023.02.18 |
[SWEA] 4866 괄호검사 - python (0) | 2023.02.18 |
[SWEA] 4871 그래프 경로 -python (0) | 2023.02.14 |