0 ~ 10점의 점수와 각각 존재하는 싱글/더블/트리플, 직전 2번의 점수를 두배로 만들어주는 스타상 / 직전 한개 점수를 음수로 바꾸는 아차상이 존재할 때, 주어진 문자열을 점수로 환산하는 함수 작성
def solution(dartResult):
score_board = []
dartResult = dartResult.replace("10", "x")
for dart in dartResult:
if dart.isdecimal():
score_board.append(int(dart))
elif dart == "x":
score_board.append(10)
elif dart == "S":
continue
elif dart == "D":
score_board[-1] = score_board[-1] ** 2
elif dart == "T":
score_board[-1] = score_board[-1] ** 3
elif dart == "#":
score_board[-1] = score_board[-1] * -1
elif dart == "*":
if len(score_board) > 1:
score_board[-1] = score_board[-1] * 2
score_board[-2] = score_board[-2] * 2
else:
score_board[-1] = score_board[-1] * 2
return sum(score_board)
score_board
배열을 생성한 뒤, 0과 1로 구분될 수 있는 문자 10
을 x
로 치환x
일 경우 정수로 변환하여 score_board
에 저장score_board
배열 원소의 합을 return