파이썬 알고리즘 문제 풀이

[프로그래머스] 문자열 계산하기

gogi masidda 2024. 1. 6. 17:30
  • 문자열 계산하기
문제 설명

my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.

def solution(my_string):
    answer = 0
    list = my_string.split()
    plus_nums = [int(list[0])]
    minus_nums = []
    for i in range(1, len(list)):
        if list[i] == "+":
            plus_nums.append(int(list[i+1]))
        elif list[i] == "-":
            minus_nums.append(int(list[i+1]))
    answer = sum(plus_nums)
    if len(minus_nums) > 0:
        for i in minus_nums:
            answer -= i
    return answer

더하기와 빼기만 있으므로 순서를 바꾸어도 계산 결과가 같은 것을 이용했다.

 

다른 사람 풀이

def solution(my_string):
    return sum(int(i) for i in my_string.replace(' - ', ' + -').split(' + '))

-를 + -로 바꿔서 음수로 만들어 싹 더해버리기..

def solution(my_string):
    my_string = list(my_string.split())
    answer = 0
    operator = ''
    for m in my_string:
        if m == '+' or m == '-':
            operator = m
        else:
            if operator == '+':
                answer += int(m)
            elif operator == '-':
                answer -= int(m)
            elif operator == '':
                answer = int(m)
    return answer

범용성 생각하면 이게 더 맞는거 같기도

728x90