Programmers

[프로그래머스 / 파이썬 풀이] [1차] 다트 게임

Hoo_Dev 2023. 2. 2. 10:25
def solution(dartResult):
    answer = 0
    cal_lst = []
    format_lst = dartResult.replace('10', 'X')
    
    for i in format_lst:
        if i.isnumeric() == True :
            cal_lst.append(int(i))
        if i == 'X':
            cal_lst.append(10)
        if i == 'S':
            cal_lst[-1] **= 1
        if i == 'D':
            cal_lst[-1] **= 2
        if i == 'T':
            cal_lst[-1] **= 3
        if i == '*':
            if len(cal_lst) >= 2:
                cal_lst[-1] *= 2
                cal_lst[-2] *= 2
            else:
                cal_lst[-1] *= 2
        if i == '#':
            cal_lst[-1] = -cal_lst[-1]

    answer = sum(cal_lst)
    return answer

주의해야 할 부분은 10으로 담기는 부분 처리이다.

보통 리스트에 담게 된다면 1, 0이 따로 담기므로 10을 replace를 통해 다른 문자열로 변환해서 따로 체크해줘야 한다.