Python/CoTe

[programmers] 1차 다트 게임

joannekim0420 2022. 3. 3. 17:49
728x90

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

 

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

 

programmers.co.kr

 

 

 

def solution(dartResult):
    answer = 0
    dartR = list(dartResult)
    tmp = []
    for i in dartR:
        if i == "S":
            continue
        elif i == "D":
            tmp[-1] = tmp[-1]**2
        elif i == "T":
            tmp[-1] = tmp[-1]**3
        elif i == "#":
            tmp[-1] = tmp[-1]*(-1)
        elif i == "*":
            if len(tmp)>1:
                tmp[-2], tmp[-1] = tmp[-2]*2, tmp[-1]*2
            else:
                tmp[-1] = tmp[-1]*2
        else:
            tmp.append(int(i))
            # 숫자가 10인 경우 예외 처리
            if len(tmp)>1 and tmp[-1] == 0 and tmp[-2] == 1:
                tmp[-2] = 10
                del tmp[-1]
        
    return sum(tmp)

※ 주의

이 문제에서 주의점은 숫자가 10인 경우이다.

- list(dartResult)로 문자열이 하나하나 나눠지므로, 숫자가 10인 경우 예외 처리가 필요하다

- len(tmp)로 0이 맨 앞에 나올 때, 예외 처리 필요하다, (테스트 케이스 5,8)

'Python > CoTe' 카테고리의 다른 글

[programmers] 전화번호 목록  (0) 2022.03.06
[programmers] 기능 개발  (0) 2022.03.04
[programmers] 키패드 누르기  (0) 2022.03.03
[programmers] 3진법 뒤집기  (0) 2022.03.03
[programmers] 신고 결과 받기  (0) 2022.02.27