본문 바로가기
Beakjoon&프로그래머스/파이썬

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

by 현장 2022. 1. 8.

-코드

def solution(dartResult):
    answer = []
    num = ''
    for i in dartResult:
        if i.isdigit():
            num += i
        elif i == 'S':
            answer.append(int(num) ** 1)
            num = ''
        elif i == 'D':
            answer.append(int(num) ** 2)
            num = ''
        elif i == 'T':
            answer.append(int(num) ** 3)
            num = ''
        elif i == '*':
            if len(answer) > 1:
                answer[-1] = answer[-1] * 2
                answer[-2] = answer[-2] * 2
            else:
                answer[-1] = answer[-1] * 2
        elif i == '#':
            answer[-1] = answer[-1] * -1
    return sum(answer)

처음에 num을 int형으로 두고 숫자일 경우를 받아서 쓰니 숫자가 10 이상이 나왔을 경우 문제가 생겨서 찾아보니 문자열 형태로 받아서 int형을 취해주는 방법으로 해결을 하였습니다.