Photo by Pietro Mattia on Unsplash
def solution(dartResult):
string_grade = {
'S' : '**1',
'D' : '**2',
'T' : '**3',}
mark_grade = ['*', '#']
answer = []
dartResult = list(dartResult)
for idx, point in enumerate(dartResult):
if point in mark_grade:
if point == '*':
answer[-2:] = [x*2 for x in answer[-2:] ]
else:
answer[-1:] = [x *-1 for x in answer[-1:]]
elif point in string_grade.keys():
if (dartResult[idx-2] + dartResult[idx-1]).isdigit():
answer.append(eval((dartResult[idx-2] + dartResult[idx-1]) + string_grade[point]))
else:
answer.append(eval(dartResult[idx-1]+ string_grade[point]))
return sum(answer)
내가 정리한 조건
이를 토대로 처음에 접근한 방식은 다음과 같다.