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

Jin Lee·2022년 5월 15일
0

프로그래머스 Lv.1

목록 보기
8/32
post-thumbnail

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/17682

문제 설명

  • stack을 이용하였고 이때 문제가 되는 상황은 10점을 맞춘 상황이다 string으로 입력되었기 때문에 이부분에 대한 예외 처리를 절대 들어오지 않는 문자를 사용 자릿수를 하나로 만들어 예외처리 했다.

코드

def solution(dartResult):
    stack = []
    dartResult = dartResult.replace('10', 'a')
    bonus = {'S': 1, 'D': 2, 'T': 3}
    
    for data in dartResult:
        if data.isdigit() or data=='a':
            if data == 'a':
                stack.append(10)
            else:
                stack.append(int(data))
        elif data in ('S', 'D', 'T'):
            num = stack.pop()
            stack.append(num ** bonus[data])
        elif data == '#':
            stack[-1] = stack[-1] * -1
        elif data == '*':
            num = stack.pop()
            if len(stack):
                stack[-1] = stack[-1] * 2
            stack.append(2 * num)
            
    return sum(stack)
profile
깃허브 : https://github.com/jinlee9270

0개의 댓글