[프로그래머스/파이썬] 문자열 계산하기

SMALL
def solution(my_string):
    answer = 0
    operator = '+'
    for index, value in enumerate(my_string.split(' ')):
        if index % 2 == 1:
            operator = '+' if value == '+' else '-'
        else: 
            if operator == '+':
                answer += int(value)
            else:
                answer -= int(value)
    return answer

string 형태로 된 연산식을 계산하는 문제이다.

 

먼저 operator는 '+'로 지정해주었다.

 

my_string.split(' ') 공백으로 분할한 배열을 enumerate() 함수를 통해 index와 value 값으로 접근하도록 하여 반복문을 실행한다.

연산자의 경우 숫자의 사이 사이에 들어갈 수 있으므로 1, 3, 5 ,,, 번째 index에 있을 것이므로 operator를 정의한다.

operator 가 + 일 경우에는 answer 에 int로 형변환한 값을 더해주고

operator 가 - 일 경우에는 answer에 int로 형변환한 값을 빼주었다.

 

operator를 '+' 로 정의한 이유는 0번째에 있는 수를 answer 값에 더해주기 위해 초기값을 '+'로 설정하였다.

 

LIST