https://www.acmicpc.net/problem/1662
1. 유형
스택, 재귀
2. 풀이
1) 입력 문자열을 각각 문자로 파싱
2) 맨 끝에서 부터 pop을 하며 (, ), 숫자 경우에 따라 조건을 대입
3) 재귀를 활용
3. 코드
def rec(tmp, stack):
while stack:
top = stack.pop()
if top == ')':
tmp += rec(0, stack)
elif top == '(':
r = int(stack.pop())
tmp = tmp * r
return tmp
else:
tmp += 1
return tmp
str = input()
stack = list(str)
answer = rec(0, stack)
print(answer)
'알고리즘 > 백준' 카테고리의 다른 글
백준 - 1600 말이되고픈 원숭이 (Java) (0) | 2021.06.10 |
---|---|
백준 21610 - (Java, python) 마법사 상어와 비바라기 (0) | 2021.06.03 |
백준 15810 - 풍선 공장 (0) | 2021.05.18 |
백준 2910 - (python)빈도 정렬 (0) | 2021.05.01 |
백준 17609 - (python)회문 (0) | 2021.05.01 |