import math


def solution(dartResult):
result = []
answer = 0
if dartResult[1] == "0":
result.append("10") # "10"추가
dartResult = dartResult.strip("10") # 맨 앞 10 제거 "10D10S10T*"->"D10S10T*"
result.append(dartResult[0]) # 결과1 SDT 추가

dartResult = dartResult.strip(dartResult[0]) # 결과1 SDT 제거
else:
result.append(dartResult[0]) # 결과1의 점수 추가
dartResult = dartResult.strip(dartResult[0]) # 결과1의 점수 제거
result.append(dartResult[0]) # 결과1 SDT 추가
lastSDT = ""
if dartResult[0] == dartResult[len(dartResult) - 1]: # 만약 결과1 SDT와 결과3 SDT가 같다면
lastSDT = dartResult[len(dartResult) - 1] # lastSDT에 결과3 SDT를 저장
dartResult = dartResult.strip(dartResult[0]) # 결과1 SDT제거 (이 때 결과3것도 삭제될 수 있음)
if dartResult[len((dartResult)) - 1].isdigit(): # 마지막 글자가 숫자라면
dartResult = dartResult + lastSDT # lastSDT를 추가
if dartResult[0].isdigit(): # 결과1 *#이 없다면
result.append("!") # !를 추가
else: # 결과1 *#이 있다면
result.append(dartResult[0]) # *#을 추가
dartResult = dartResult.strip((dartResult[0])) # 결과1 *# 제거

if dartResult[1] == "0":
result.append("10") # "10"추가
dartResult = dartResult.strip("10") # 맨 앞 10 제거 "10D10S10T*"->"D10S10T*"
result.append(dartResult[0]) # 결과2 SDT 추가

dartResult = dartResult.strip(dartResult[0]) # 결과2 SDT 제거
else:
result.append(dartResult[0]) # 결과2의 점수 추가
dartResult = dartResult.strip(dartResult[0]) # 결과2의 점수 제거
result.append(dartResult[0]) # 결과2 SDT 추가
lastSDT = ""
if dartResult[0] == dartResult[len(dartResult) - 1]: # 만약 결과2 SDT와 결과3 SDT가 같다면
lastSDT = dartResult[len(dartResult) - 1] # lastSDT에 결과3 SDT를 저장
dartResult = dartResult.strip(dartResult[0]) # 결과2 SDT제거 (이 때 결과3것도 삭제될 수 있음)
if dartResult[len((dartResult)) - 1].isdigit(): # 마지막 글자가 숫자라면
dartResult = dartResult + lastSDT # lastSDT를 추가
if dartResult[0].isdigit(): # 결과2 *#이 없다면
result.append("!") # !를 추가
else: # 결과2 *#이 있다면
result.append(dartResult[0]) # *#을 추가
dartResult = dartResult.strip((dartResult[0])) # 결과1 *# 제거

if dartResult[1] == "0":
result.append("10") # "10"추가
dartResult = dartResult.strip("10") # 맨 앞 10 제거 "10D10S10T*"->"D10S10T*"
result.append(dartResult[0]) # 결과3 SDT 추가
else:
result.append(dartResult[0]) # 결과3의 점수 추가
dartResult = dartResult.strip(dartResult[0]) # 결과3의 점수 제거
result.append(dartResult[0]) # 결과3 SDT 추가

if len(dartResult) == 1:
dartResult = dartResult + "!"

result.append(dartResult[1])


firstScore = 0
def firstScoreDef(result):
bonus = 0
if result[1] == "S":
bonus = 1
elif result[1] == "D":
bonus = 2
elif result[1] == "T":
bonus = 3

award = 0
if result[2] == "*": # 스타상
award = 2
if result[5] == "*":
award = 2 * 2
elif result[2] == "#": # 아차상
award = -1
if result[5] == "*":
award = -1 * 2
elif result[2] == "!":
award = 1
if result[5] == "*":
award = 1 * 2
return math.pow(int(result[0]), bonus) * award
firstScore = firstScoreDef(result)

def secondScoreDef(result):
bonus = 0
if result[4] == "S":
bonus = 1
elif result[4] == "D":
bonus = 2
elif result[4] == "T":
bonus = 3

award = 0
if result[5] == "*": # 스타상
award = 2
if result[8] == "*":
award = 2 * 2
elif result[5] == "#": # 아차상
award = -1
if result[8] == "*":
award = -1 * 2
elif result[5] == "!":
award = 1
if result[8] == "*":
award = 1 * 2
return math.pow(int(result[3]), bonus) * award
secondScore = secondScoreDef(result)

def thirdScoreDef(result):
bonus = 0
if result[7] == "S":
bonus = 1
elif result[7] == "D":
bonus = 2
elif result[7] == "T":
bonus = 3

award = 0
if result[8] == "*": # 스타상
award = 2
elif result[8] == "#": # 아차상
award = -1
elif result[8] == "!":
award = 1
return math.pow(int(result[6]), bonus) * award
thirdScore = thirdScoreDef(result)

answer = firstScore + secondScore + thirdScore

return int(answer)



이렇게 하드 코딩 하면 혼나나 ?

코린이라 있는 상식 없는 상식 다 써가면서 풀었는데

테스트 몇개 통과가 안되서 제출이 안돼.......................................................





테스트 케이스 내가 추가한거까지 9개는 통과 시켰는데 이 정도면 제출 가능하게 해줘야하는거 아니야? 1점만 주더래도