Data Analyst KIM

[프로그래머스Lv.1] 다트 게임 - 파이썬 본문

데이터 분석/Coding Test

[프로그래머스Lv.1] 다트 게임 - 파이썬

김두연 2023. 7. 13. 23:51
반응형

[프로그래머스Lv.1] 다트 게임 - 파이썬
[프로그래머스Lv.1] 다트 게임 - 파이썬
[프로그래머스Lv.1] 다트 게임 - 파이썬


<문제 접근 방식>

1. dartResult를 리스트로 변환시키고 숫자와 숫자가 아닌 것을 분리하고자 했다.

2. 0~10인데 10은 두자리 수를 가지므로 조건문을 이용하여 처리를 해야겠다고 생각했다.

3. 조건에 맞게 분리를 해서 일단 list에 저장했다.

4. 리스트에서 문제의 규칙을 따라서 순차적으로 작업했다.

 

def solution(dartResult):
    answer = []
    score = []
    list_dart = list(dartResult)
    for i in range(len(list_dart)):
        if list_dart[i] == "1" and list_dart[i+1] =="0" :
            score.append('10')
        elif list_dart[i] == "0" and list_dart[i-1] =="1" :
            pass
        else :
            score.append(list_dart[i])
            
    for i in range(1,len(score)):
        if score[i] == 'S' :
            answer.append(int(score[i-1]))
        elif score[i] == 'D' :
            answer.append(int(score[i-1])**2)
        elif score[i] == 'T' :
            answer.append(int(score[i-1])**3)
        elif score[i] == '*' :
            if len(answer) >= 2:
                answer[-1] *= 2
                answer[-2] *= 2
            else :
                answer[-1] *= 2
        elif score[i] == '#' :
            answer[-1] *= -1
    return sum(answer)

 

반응형