문제 설명 및 제한사항
아이디어 및 해결 방법
코드
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
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges