def solution(dartResult):
answer = 0
cal_lst = []
format_lst = dartResult.replace('10', 'X')
for i in format_lst:
if i.isnumeric() == True :
cal_lst.append(int(i))
if i == 'X':
cal_lst.append(10)
if i == 'S':
cal_lst[-1] **= 1
if i == 'D':
cal_lst[-1] **= 2
if i == 'T':
cal_lst[-1] **= 3
if i == '*':
if len(cal_lst) >= 2:
cal_lst[-1] *= 2
cal_lst[-2] *= 2
else:
cal_lst[-1] *= 2
if i == '#':
cal_lst[-1] = -cal_lst[-1]
answer = sum(cal_lst)
return answer
주의해야 할 부분은 10으로 담기는 부분 처리이다.
보통 리스트에 담게 된다면 1, 0이 따로 담기므로 10을 replace를 통해 다른 문자열로 변환해서 따로 체크해줘야 한다.
'Programmers' 카테고리의 다른 글
[프로그래머스 / 파이썬 풀이] 최댓값과 최솟값 (0) | 2023.02.07 |
---|---|
[프로그래머스 / 파이썬 풀이] 여행경로 (0) | 2023.02.06 |
[프로그래머스 / 파이썬 풀이] 소수 만들기 (0) | 2023.02.02 |
[프로그래머스 / 파이썬 풀이] 예산 (0) | 2023.02.01 |
[프로그래머스 / 파이썬 풀이] 크레인 인형뽑기 게임 (0) | 2023.01.31 |