Search
Duplicate

[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
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges