1 minute read

1. 개요

2. 문자열계산하기 풀이

from collections import deque

# answer를 정해 갱신해 나간다.
def solution(my_string):
    args = deque(my_string.split(" "))
    answer = int(args[0])
    
    args.popleft()
    
    while args:
        operator = args.popleft()
        if operator == "+":
            answer += int(args.popleft())
        else:
            answer -= int(args.popleft())

    return answer

# " - " 를 " + -"로 바꿔 음수와의 덧셈으로 전환한다.
# 이제 " + " 기준으로 split() 해주면 쉽게 sum을 통해 답을 구할수 있다.
def solution(my_string):
    return sum(int(i) for i in my_string.replace(' - ', ' + -').split(' + '))

3. 잘라서배열로저장하기 풀이

import re

# 정규식으로 풀수 있다.
def solution(my_str, n):
    return re.findall("\S{" + str(1) + "," + str(n) + "}", my_str)

# 인덱싱과, 슬라이싱을 통해 구할수 있다.
def solution(my_str, n):
    return [my_str[i: i + n] for i in range(0, len(my_str), n)]

4. 영어가싫어요 풀이

import re

# REGEX를 사용하여 풀수 있다.
def solution(numbers):
    DB = {"zero":"0", "one":"1", "two":"2", "three":"3", "four":"4", 
          "five":"5", "six":"6", "seven":"7", "eight":"8", "nine":"9"}
    REGEX = "zero|one|two|three|four|five|six|seven|eight|nine"
    return int("".join(DB[num] for num in re.findall(REGEX, numbers)))

# replace를 통해 교체해 나간다.
def solution(numbers):
    for num, eng in enumerate(["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]):
        numbers = numbers.replace(eng, str(num))
    return int(numbers)

5. 공던지기 풀이

def solution(numbers, k):
    # 0 1 2 3 0 1 2 3
    # 0 1 2 3 4 5 6 7
    # 1씩빼서 0부터시작하면 나누기연산을 하기 편리하다.
    return 2*(k-1) % (len(numbers)) + 1

Leave a comment