[9/11] 다트 게임

레벨1 문제

내 코드

def solution(dart):    
    arr = []
    
    for i in range(len(dart)):
        # 숫자 처리
        if ( dart[i].isdigit() ):
            if ( dart[i] == '0' and dart[i-1].isdigit()):
                arr[-1] = arr[-1] + dart[i]
            else:
                arr.append(dart[i])
        
        # 문자 처리
        elif ( dart[i].isalpha() ):
            if ( dart[i] == 'S' ):
                arr[-1] = int(arr[-1])
            elif ( dart[i] == 'D' ):
                arr[-1] = int(arr[-1]) ** 2
                
            elif ( dart[i] == 'T' ):
                arr[-1] = int(arr[-1]) ** 3
                
        # 옵션 처리 (별)
        elif ( dart[i] == '*'):
            # 스타상이 첫번째에 나왔을때
            if ( len(arr) == 1 ):
                arr[-1] = arr[-1] * 2
            # 아닐때
            else:
                arr[-1] = arr[-1] * 2
                arr[-2] = arr[-2] * 2
                
        # 옵션 처리 (샵)
        elif ( dart[i] == '#'):
            arr[-1] = -arr[-1]
    
    answer = sum(arr)
    return answer

로직

  • 시키는대로 풀었다.
  • 문자열을 하나하나 세부적으로 풀었다.

3개월 전 초보시절에 3시간 넘게 끙끙대도 못풀었던 문제인데 20분만에 푼거 보니 실력이 늘긴 늘었나 보다.

좋은 웹페이지 즐겨찾기