https://programmers.co.kr/learn/courses/30/lessons/17682
def solution(dartResult):
answer = 0
n=''
mlist=[]
for i in dartResult:
if i.isnumeric():
n+=i
elif i=='S':
mlist.append(int(n)**1)
n=''
elif i=='D':
mlist.append(int(n)**2)
n=''
elif i=='T':
mlist.append(int(n)**3)
n=''
elif i=='*':
if len(mlist)>1:
mlist[-1]*=2
mlist[-2]*=2
else:
mlist[-1]*=2
elif i=='#':
mlist[-1]=mlist[-1]*-1
answer=sum(mlist)
return answer
if i.isnumeric(): n+=i
를 해줌def solution(dartResult):
point = []
answer = []
# 숫자가 10이 될 때를 처리
#k로 바꿔둔 뒤 k라면 10으로 계산, 아니라면 그대로 계산
dartResult = dartResult.replace('10','k')
point = ['10' if i == 'k' else i for i in dartResult]
print(point)
i = -1
sdt = ['S', 'D', 'T']
for j in point:
if j in sdt :
answer[i] = answer[i] ** (sdt.index(j)+1)
elif j == '*':
answer[i] = answer[i] * 2
if i != 0 :
answer[i - 1] = answer[i - 1] * 2
elif j == '#':
answer[i] = answer[i] * (-1)
else:
answer.append(int(j))
i += 1 # 인덱스 +1
return sum(answer)