본문 바로가기
Algorithm/Python

[Python] 프로그래머스 - [1차] 다트게임(Dictionary)

by 힘팽 2022. 3. 18.

◈ 오류 정정 및 피드백 환영

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr


🔎문제 분석

문자열에 따라 연산이 달라지기 때문에 딕셔너리 형태로 연산자를 정리해두면 된다. 

🤦‍♀️유의 사항

숫자가 10인 경우를 고려해 숫자인 문자열은 다음과 같이 모두 더해준다.

num = ""
for i in dartResult:
    if i.isdigit():
        num += i

def solution(dartResult):
    dic = {"S":1,"D":2,"T":3,"*":2,"#":-1}
    stack = []
    num = ""
    for i in dartResult:
        if i.isdigit():
            num += i
        elif i in ["S","D","T"]:
            stack.append(int(num)**dic[i])
            num = ""
        elif i in ["*","#"]:
            stack[-1] = stack[-1]*dic[i]
            if i=="*" and len(stack)>1:
                stack[-2] = stack[-2]*dic[i]
    return sum(stack)

댓글