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

Tony Kim·2022년 1월 22일
0
post-thumbnail

프로그래머스

Lv.1 [1차] 다트 게임

1.문제

input 문자열
output 해당 문자열에 따라 숫자계산 / 두배 등등해서 합 return

2. 풀이

while문으로 문자열을 순회하며 if문으로 조건을 확인함
isdigit(), int(), index slicing, **활용

3. 코드

def solution(dartResult):
    answer = []
    i = 0
    while i < len(dartResult):
        if dartResult[i].isdigit():
            if dartResult[i+1].isdigit() == False:
                if dartResult[i+1] == "S":
                    answer.append(int(dartResult[i]))
                    i += 1
                elif dartResult[i+1] == "D":
                    answer.append(int(dartResult[i])**2)
                    i += 1
                else:
                    answer.append(int(dartResult[i])**3)
                    i += 1
            else:
                if dartResult[i+2] == "S":
                    answer.append(int(dartResult[i:i+2]))
                    i += 2
                elif dartResult[i+2] == "D":
                    answer.append(int(dartResult[i:i+2])**2)
                    i += 2
                else:
                    answer.append(int(dartResult[i:i+2])**3)
                    i += 2
        elif dartResult[i] == "*":
            if len(answer) == 1:
                answer[0] = answer[0]*2
            else:
                answer[-2] = answer[-2]*2
                answer[-1] = answer[-1]*2
        else:
            if len(answer) == 1:
                answer[0] = -answer[0]
            else:
                answer[-1] = -answer[-1]
        i += 1
    return sum(answer)
profile
Back-end-dev

0개의 댓글