📖  문제

https://programmers.co.kr/learn/courses/30/lessons/17682

 

코딩테스트 연습 - [1차] 다트 게임

 

programmers.co.kr

 

💻  코드

import re


def solution(dartResult):
    nums = list(map(int, re.findall(r'\d+', dartResult)))
    ni = 0
    for i, c in enumerate(dartResult):
        if c in ('S', 'D', 'T'):
            if c == 'D':
                nums[ni] **= 2
            if c == 'T':
                nums[ni] **= 3
            if i + 1 < len(dartResult):
                if dartResult[i + 1] == '*':
                    if ni > 0:
                        nums[ni - 1] *= 2
                    nums[ni] *= 2
                if dartResult[i + 1] == '#':
                    nums[ni] = -nums[ni]
            ni += 1
    return sum(nums)

 

🙌  한마디

구현 문제였고, 문자열로부터 숫자를 추출할 때 정규표현식(re)을 사용했다.

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기