삽집하는 개발들/알고리즘

[48일차][Lv1][프로그래머스][2018 KAKAO BLIND RECRUITMENT[1차]][17682] 다트 게임

악투 2023. 8. 28. 02:15
반응형
def solution(dartResult):
    score_list = [ f'{idx}' for idx in range(11)]
    dart_list = { 'S' : 1, 'D' : 2, 'T': 3 }
    check_arr = 0
    answer_arr = []
    for idx in range(len(dartResult)):  
        if dartResult[idx] in score_list:
            if dartResult[idx] == '0' and dartResult[idx-1] == '1':
                check_arr = 10
            else:
                check_arr = dartResult[idx]
                
        if dartResult[idx] == 'S' or dartResult[idx] == 'D' or dartResult[idx] == 'T':
            answer_arr.append(int(check_arr)**dart_list[dartResult[idx]])    
            
        if dartResult[idx] == '#':           
            pop_number = answer_arr.pop()
            answer_arr.append(-int(pop_number))
            
        if dartResult[idx] == '*':  
            sum_answer = 0
            if len(answer_arr) == 1:
                value1 = answer_arr.pop() * 2                  
                answer_arr.append(value1)
            else:
                value1 = answer_arr.pop() * 2
                value2 = answer_arr.pop() * 2
                answer_arr.append(value2)
                answer_arr.append(value1)    
   
    return sum(answer_arr)
반응형