https://school.programmers.co.kr/learn/courses/30/lessons/17682
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
18년 (시험은 17년에 이루어졌을 겁니다.) kakao 문제였다고 합니다.
입력을 적당히 잘 쪼개고 예외를 조심하면서 문제에 주어진 대로 구현하면 풀리는 문제입니다.
다트가 3개이기 때문에 저는 다트의 인덱스 idx와 입력의 인덱스 i를 다르게 관리해줬습니다. 또 점수가 10인 경우를 주의해야 합니다.
def solution(dartResult):
answer = [0, 0, 0]
idx = -1
i = 0
while i < len(dartResult):
if dartResult[i] in ["S", "D", "T"]:
if dartResult[i] == "D":
answer[idx] *= answer[idx]
elif dartResult[i] == "T":
answer[idx] = answer[idx] * answer[idx] * answer[idx]
elif dartResult[i] == "*":
answer[idx] *= 2
if idx - 1 >= 0:
answer[idx - 1] *= 2
elif dartResult[i] == "#":
answer[idx] *= -1
else:
idx += 1
if dartResult[i] == "1" and i < len(dartResult) - 1 and dartResult[i + 1] == "0":
answer[idx] = 10
i += 1
else :
answer[idx] = int(dartResult[i])
i += 1
return sum(answer)
728x90
'🔍 알고리즘 > 프로그래머스 Python' 카테고리의 다른 글
[Python] 프로그래머스 131130. 혼자 놀기의 달인 (Lv.2) (0) | 2022.10.10 |
---|---|
[Python] 프로그래머스 17681. 비밀지도 (Lv.1) (1) | 2022.10.10 |
[Python] 프로그래머스 131128. 숫자 짝꿍 (Lv.1) (0) | 2022.10.10 |
[Python] 프로그래머스 12921. 소수 찾기 (Lv.1) (0) | 2022.10.10 |
[Python] 프로그래머스 12915. 문자열 내 마음대로 정렬하기 (Lv.1) (1) | 2022.10.10 |