카카오톡에 뜬 네 번째 별! 심심할 땐? 카카오톡 게임별~
카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다.
갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심 부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다.
0~10의 정수와 문자 S, D, T, *, #로 구성된 문자열이 입력될 시 총점수를 반환하는 함수를 작성하라.
scores
배열에 넣어 분리해 계산한다. (이후 세트에서의 스타상 등으로 점수가 오를 수 있기 때문)scores
배열의 요소를 모두 더하면 그게 답이 되겠다.import re
def solution(dartResult):
results = re.findall("(\d+)([SDT])([*#]?)", dartResult)
scores = []
bonus = {'S': 1, 'D': 2, 'T': 3}
option = {'*': 2, '#': -1, '': 1}
for x,y,z in results:
score = int(x) ** bonus[y] * option[z]
if z == '*':
if scores: scores[-1] *= 2
scores.append(score)
return sum(scores)
- 정규표현식 중 세부적인건 기억이 안난다.. 복습하자
- 문제 좀 잘 읽자