[Programmers] P17682 다트 게임
        
         
  
      [Programmers] P17682 다트 게임
Question
Language: Python
- 
    
각 다트 점수에 대해서 점수/보너스/옵션을 parsing 해야하는 데 이는 정규 표현식을 이용한다.
 - 
    
보너스를 합한 점수를 계산하며, 옵션을 적용한다.
 
Solution
import re
def solution(dartResult):
    answer = [0]*3
    
    points={"S":1,"D":2,"T":3}
    options={"*":2,"#":-1,"":1}
    
    #1
    pattern=re.compile("(\d+)([SDT])([*#]?)")
    groups=pattern.findall(dartResult)
    
    for i in range(3):
      #2
        answer[i]=int(groups[i][0])**(points[groups[i][1]])*options[groups[i][2]]
        
        if i>0 and groups[i][2] == "*":
            answer[i-1]*=options[groups[i][2]]
        
    return sum(answer)
      
댓글남기기