◈ 오류 정정 및 피드백 환영
코딩테스트 연습 - [1차] 다트 게임
programmers.co.kr
🔎문제 분석
문자열에 따라 연산이 달라지기 때문에 딕셔너리 형태로 연산자를 정리해두면 된다.
🤦♀️유의 사항
숫자가 10인 경우를 고려해 숫자인 문자열은 다음과 같이 모두 더해준다.
num = ""
for i in dartResult:
if i.isdigit():
num += i
def solution(dartResult):
dic = {"S":1,"D":2,"T":3,"*":2,"#":-1}
stack = []
num = ""
for i in dartResult:
if i.isdigit():
num += i
elif i in ["S","D","T"]:
stack.append(int(num)**dic[i])
num = ""
elif i in ["*","#"]:
stack[-1] = stack[-1]*dic[i]
if i=="*" and len(stack)>1:
stack[-2] = stack[-2]*dic[i]
return sum(stack)
'Algorithm > Python' 카테고리의 다른 글
[Python] 프로그래머스 - 메뉴 리뉴얼(재귀) (0) | 2022.03.20 |
---|---|
[Python] 프로그래머스 - 후보키 (0) | 2022.03.19 |
[Python] 프로그래머스 - [3차] 파일명 정렬(정규식) (0) | 2022.03.17 |
[Python] 프로그래머스 - 매칭 점수(정규식) (0) | 2022.03.16 |
[Python] 프로그래머스 - [3차] n진수 게임(재귀) (0) | 2022.03.15 |
댓글