프로그래머스 다트 게임

DARTZ·2022년 5월 26일
0

알고리즘

목록 보기
77/135
def solution(dartResult):
    caculator = []
    num = ''
    end = 0
    
    for s in range(len(dartResult)):
        if dartResult[s] == 'S':
            caculator.append(int(num))
            num = ''

        elif dartResult[s] == 'D':
            caculator.append(int(num) ** 2)
            num = ''

        elif dartResult[s] == 'T':
            caculator.append(int(num) ** 3)
            num = ''

        elif dartResult[s] == '*': # *일 경우는 앞에 2개를 2배씩 해줘야하므로 
        						   # 일단 길이를 반환하고 범위를 벗어나지 않게 
                                   # 범위를 지정하고 계산해준다.
            current_length = len(caculator)
            if current_length - 3 < 0:
                end = 0
            else: 
                end = current_length - 2
                
            for c in range(current_length-1, end-1, -1):
                caculator[c] = caculator[c] * 2
            

        elif dartResult[s] == '#':
            caculator[-1] = caculator[-1] * -1

        else:
            num += dartResult[s]
    
    return sum(caculator)
profile
사람들이 비용을 지불하고 사용할 만큼 가치를 주는 서비스를 만들고 싶습니다.

0개의 댓글