보물창고 블로그

2018 KAKAO BLINDRECRUITMENT 1차 다트게임 본문

알고리즘 풀이/프로그래머스

2018 KAKAO BLINDRECRUITMENT 1차 다트게임

홋 메 2020. 3. 26. 16:33
728x90

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/17682

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

해결한 코드는 아래와 같다. 

def solution(dartResult):
    answer = 0
    lastscore = 0
    score = 0
    length = len(dartResult)
    idx = 0
    number = ''
    while idx < length:
        if '0' <= dartResult[idx] <= '9':
            number += dartResult[idx]
            idx += 1
        else:
            if dartResult[idx] == 'S':
                score = int(number)
            elif dartResult[idx] == 'D':
                score = pow(int(number), 2)
            elif dartResult[idx] == 'T':
                score = pow(int(number), 3)
            if idx + 1 < length and (dartResult[idx + 1] == '#' or dartResult[idx + 1] == '*'):
                if dartResult[idx + 1] == '#':
                    score = -score
                    answer += score
                    lastscore = score
                else:
                    answer += lastscore
                    score *= 2
                    answer += score
                    lastscore = score
                idx += 2
            else:
                answer += score
                lastscore = score
                idx += 1
            number = ''

    return answer
Comments