혜온의 이것저것

[2018 KAKAO BLIND RECRUITMENT] 다트 게임 - Python 본문

Algorithm/Programmers

[2018 KAKAO BLIND RECRUITMENT] 다트 게임 - Python

혜온 :) 2021. 12. 29. 15:37

[문제 이해 및 풀이]

숫자로 표현되는 점수와 문자로 표현되는 보너스와 옵션들로 dartResult가 구성되어 있다.

dartResult에서 정규식을 사용하여 숫자들만 num list에 저장해두었다.

그 후 dartResult를 for문으로 하나씩 접근하여 해당하는 문자에 해당하는 계산을 해주었다.

이 때, idx를 활용하여 보너스와 옵션에 해당하는 점수가 계산되도록 해주었다.

 


[나의 코드]

import re
def solution(dartResult):
    idx=0
    num=re.findall('\d+',dartResult)
    num=list(map(int,num))
    for i in dartResult:
        if i.isdigit()==False:
            if i=="S":
                idx+=1
            elif i=="D":
                num[idx]=num[idx]**2
                idx+=1
            elif i=="T":
                num[idx]=num[idx]**3
                idx+=1
            elif i=="*":
                num[idx-1]=num[idx-1]*2
                if idx>1:
                    num[idx-2]=num[idx-2]*2
            elif i=='#':
                num[idx-1]=num[idx-1]*(-1)
    return sum(num)

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/17682

 

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

 

programmers.co.kr

 

Comments