less than 1 minute read

1. 개요

2. 완주하지못한선수 풀이

import re

def solution(dartResult):
    darts = re.findall("(\d+)([SDT])([\*#]*)", dartResult)
    ADJUSTER = {"S":1, "D":2, "T":3, "*":2, "#":-1, "":1}
    answer = []
    
    # 정규식을 통해 각각의 다트의 점수, 보너스, 옵션을 모두 알아낼수 있다.
    for score, bonus, op in darts:
        score = int(score)**ADJUSTER[bonus]*ADJUSTER[op]
        
        if answer and op=="*":
            answer[-1] *= ADJUSTER[op]
        answer.append(score)
        
    return sum(answer)

Leave a comment