def solution(dartResult):
answer = []
num = 0
is_num = False
prev_num = 0
for idx, r in enumerate(dartResult):
if r in [str(x) for x in range(10)]:
if is_num:
num = int(str(prev_num)+r)
else:
answer.append(num)
num = int(r)
prev_num = num
is_num = True
elif r == 'S':
num = num ** 1
is_num = False
elif r == 'D':
num = num ** 2
is_num = False
elif r == 'T':
num = num ** 3
is_num = False
elif r == '*':
num = num * 2
is_num = False
if answer:
answer[-1] = answer[-1]*2
elif r == '#':
num = num * -1
is_num = False
answer.append(num)
return sum(answer)