728x90
Programmers
다트 게임
https://school.programmers.co.kr/learn/courses/30/lessons/17682
문제
코드
- 점수가 10점인 경우는 t로 변환해서 예외를 따로 적용
- result를 통해 각각의 점수를 정렬
- S, D, T의 경우에 따라 각각 보너스, 옵션 적용
def solution(dartResult):
result = []
score = 0
dartResult = dartResult.replace("10", "z")
for n in dartResult:
if n.isnumeric():
score += int(n)
continue
elif n == 'z':
score += 10
continue
elif n == 'S':
result.append(score)
elif n == 'D':
result.append(score ** 2)
elif n == 'T':
result.append(score ** 3)
elif n == '*':
if len(result) > 1:
result[-1] *= 2
result[-2] *= 2
else:
result[-1] *= 2
elif n == '#':
result[-1] *= -1
score = 0
return sum(result)
728x90
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 체육복 - 파이썬 (0) | 2024.05.09 |
---|---|
[프로그래머스] 완주하지 못한 선수 - 파이썬 (0) | 2024.05.08 |
[프로그래머스] 공원 산책 - 파이썬 (0) | 2024.05.07 |
[프로그래머스] 달리기 경주 - 파이썬 (0) | 2024.05.07 |
[프로그래머스] 대충 만든 자판 - 파이썬 (0) | 2024.05.07 |