1. 문제
https://programmers.co.kr/learn/courses/30/lessons/17682
2. 풀이
def solution(dartResult):
values = []
i = 0
while i < len(dartResult):
# 숫자 만들기
num = ''
while dartResult[i].isdecimal():
num += dartResult[i]
i += 1
num = int(num)
# 해당 숫자에 대한 보너스 확인
if dartResult[i] == 'S':
values.append(num)
elif dartResult[i] == 'D':
values.append(num ** 2)
elif dartResult[i] == 'T':
values.append(num ** 3)
i += 1
if i == len(dartResult):
break
# 해당 숫자에 대한 옵션 확인
if dartResult[i] == '*':
if len(values) == 1:
values[0] = values[0] * 2
else:
values[-1] = values[-1] * 2
values[-2] = values[-2] * 2
i += 1
elif dartResult[i] == '#':
values[-1] = -values[-1]
i += 1
return sum(values)