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

일단 해볼게·2024년 2월 25일
0

프로그래머스

목록 보기
101/106

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

def solution(dartResult):
    idx = -1
	num = "0123456789"
    nums = [0, 0, 0]

    dartResult = dartResult.replace("10", "t") # 10을 t로 변경
    
    for i in dartResult:
        # 숫자
        if i in num:
            idx += 1
            nums[idx] = int(i)
        # t = 숫자 10인 경우
        elif i == 't':
            idx += 1
            nums[idx] = 10
        # SDT (S는 숫자 그대로)
        elif i == 'D':
            nums[idx] *= nums[idx]
        elif i == 'T':
            nums[idx] *= nums[idx] * nums[idx]
        # 옵션(*, #)
        elif i == '*':
            if idx == 0: # 인덱스 0인 경우
                nums[idx] *= 2
            else:
                nums[idx - 1] *= 2
                nums[idx] *= 2
        elif i == '#':
            nums[idx] *= -1
            
    return sum(nums)
  • 숫자 10은 '1', '0' 이렇게 숫자가 따로 나오므로 아예 숫자 10을 t로 변경했다.
  • S는 자기 자신과 같아서 로직을 구현하지 않았다.
profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글