title: "[프로그래머스] [1차] 다트 게임 Python 파이썬 해설 (Level 1) - 이도훈"
cleanUrl: "programmers/17682"
description: "프로그래머스 Level 1 문제 [[1차] 다트 게임]의 풀이를 정리합니다."
import re
def solution(dartResult):
scorelist = []
powlist = []
c2pow = {'S': 1, 'D': 2, 'T': 3}
multlist = []
result = re.findall('\\d+[SDT][\\*#]*', dartResult)
for idx, res in enumerate(result):
score = int(re.match('\\d+', res)[0])
scorelist.append(score)
if 'S' in res:
powlist.append(1)
elif 'D' in res:
powlist.append(2)
elif 'T' in res:
powlist.append(3)
multlist.append(1)
if '*' in res:
multlist[-1] *= 2
if idx != 0:
multlist[-2] *= 2
if '#' in res:
multlist[-1] *= (-1)
answer = 0
for score, pow, mult in zip(scorelist, powlist, multlist):
answer += score**pow * mult
return answer
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges