프로그래머스. 2018 KAKAO BLIND RECRUITMENT. Level 1. 다트게임 파이썬 풀이
허접한 풀이
def solution(dartResult):
dartResult = list(dartResult)
num = []
for i in range(len(dartResult)-1):
if dartResult[i].isdigit() and dartResult[i+1] == '0':
num.append(int(dartResult[i] + dartResult[i+1]))
elif dartResult[i].isdigit():
if dartResult[i-1].isdigit():
continue
else:
num.append(int(dartResult[i]))
index = 0
for i in range(len(dartResult)):
target = 1
bonus = 1
if dartResult[i] == 'S':
if i+1 < len(dartResult):
if dartResult[i+1] == '*':
bonus = 2
elif dartResult[i+1] == '#':
bonus = -1
else:
bonus = 1
if index == 0 or bonus == -1:
num[index] = num[index] * bonus
else:
num[index] = num[index] * bonus
num[index-1] = num[index-1] * bonus
index += 1
elif dartResult[i] == 'D':
if i+1 < len(dartResult):
if dartResult[i+1] == '*':
bonus = 2
elif dartResult[i+1] == '#':
bonus = -1
else:
bonus = 1
if index == 0 or bonus == -1:
num[index] = num[index]**2 * bonus
else:
num[index] = num[index]**2 * bonus
num[index-1] = num[index-1] * bonus
index += 1
elif dartResult[i] == 'T':
if i+1 < len(dartResult):
if dartResult[i+1] == '*':
bonus = 2
elif dartResult[i+1] == '#':
bonus = -1
else:
bonus = 1
if index == 0 or bonus == -1:
num[index] = num[index]**3 * bonus
else:
num[index] = num[index]**3 * bonus
num[index-1] = num[index-1] * bonus
index += 1
return sum(num)