코딩 테스트 (Coding Test)

[프로그래머스] 2018 카카오 [1차] 다트 게임

Universe_lee 2023. 1. 11. 14:26

나의 답안

def solution(dartResult):
    answer = []
    cur = 0
    i = 0

    while i < len(dartResult):
        if dartResult[i].isdigit():
            answer.append(cur)
            if dartResult[i + 1].isdigit():
                cur = 10
                i += 2
                continue
            cur = int(dartResult[i])

        elif dartResult[i] == 'D':
            cur = cur ** 2

        elif dartResult[i] == 'T':
            cur = cur ** 3

        if dartResult[i] == '*':
            if any(answer):
                answer[-1] *= 2
            cur *= 2

        elif dartResult[i] == '#':
            cur *= -1

        i += 1

    answer.append(cur)
    return sum(answer)