1. 문제
2. 풀이
- 요구한 내용을 코드로 구현하기만 하면 되기 때문에 쉬운 편.
- 다트 게임은 3번으로 숫자가 정해져있음, 원소가 3개인 배열을 만들고 주어진 문자열 구분을 위해 문자열 중 3번만 나오는 기준을 찾는다.
- 숫자는 10(2개 문자)이 나올 수 있고 특수문자는 옵션이기 때문에 영문자(딱 3번 나옴)가 나올때마다 idx를 변화시켜줌
- 나머지는 문제에서 요구하는대로 차례로 구현하면 됨.
3. 코드
def solution(dartResult):
arr = [0, 0, 0]
idx = 0
for c in dartResult:
if '0' <= c <= '9':
arr[idx] = arr[idx] * 10 + int(c)
elif c == "*" or c == "#" :
if c == "*" :
if idx >= 2 :
arr[idx - 2] *= 2
arr[idx - 1] *= 2
else :
arr[idx - 1] *= 2
else :
arr[idx - 1] *= -1
else :
idx += 1
n = arr[idx - 1]
if c == "S" :
pass
elif c == "D" :
arr[idx - 1] *= n
elif c == "T" :
arr[idx - 1] *= n * n
return sum(arr)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
2018 KAKAO BLIND RECRUITMENT - 압축, 파이썬 (0) | 2021.03.09 |
---|---|
2018 KAKAO BLIND RECRUITMENT- 방금그곡, 파이썬 (0) | 2021.03.08 |
2018 KAKAO BLIND RECRUITMENT- 비밀지도, 파이썬 (0) | 2021.03.07 |
2018 KAKAO BLIND RECRUITMENT - 캐시, 파이썬 (0) | 2021.03.07 |
2018 카카오 블라인드 코딩테스트 - 셔틀버스, 파이썬 (0) | 2021.03.05 |