def solution(dartResult):
bonus = {'S': 1, 'D': 2, 'T': 3}
option = ['*', '#']
dart = []
dartResult = dartResult.replace('10', 't')
for i in range(len(dartResult)):
if dartResult[i] == 't':
dart.append('10')
else:
dart.append(dartResult[i])
result = []
number = 0
for x in dart:
if x not in bonus and x not in option:
result.append(number)
number = 0
number += int(x)
elif x in bonus:
number = number ** bonus[x]
elif x in option:
if x == '*':
number *= 2
if len(result) >= 1:
result[-1] *= 2
else:
number *= -1
result.append(number)
answer = sum(result)
return answer
2018 카카오 블라인드 1차 - 2번
1. bonus 딕셔너리 정의, option 리스트 정의
2. 숫자 10을 t로 바꿔주고 dart리스트에 한단어씩 append (단, t일경우 10으로 append)
3. for x in dart
- 숫자이면 result에 이전의 number를 append, number 0으로 초기화, number = int(x)
- bonus이면 보너스의 값 만큼 n제곱 (number = number**bonus[x])
- option *이면 이전과 number 2배, #이면 -number
4. result의 합 리턴
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 프렌즈4블록 (파이썬) (0) | 2022.01.30 |
---|---|
[프로그래머스] - 뉴스 클러스터링 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 셔틀버스 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 캐시 (파이썬) (0) | 2022.01.30 |
[프로그래머스] - 비밀지도 (파이썬) (0) | 2022.01.30 |