Study/알고리즘

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

토기발 2023. 8. 16. 12:40

요즘 파이썬 문법이나 메서드에 익숙해지기 위해 프로그래머스 기초문제를 파이썬으로 풀고있다.

 

 

 

<나의 풀이>

def solution(my_string):
    
    arr = my_string.split(' ')
    answer = int(arr[0])
    for i in range(len(arr)):
        if i % 2 != 0:  
            if arr[i] == '+':
                answer += int(arr[i+1]) 
            else:
                answer -= int(arr[i+1])  
    
    return answer

 

처음에 입출력 예를 보고 num1 num2 로만 나눴다가 연산자가 여러개인 경우가 있을 수 있어서 수정했다.

문자열을 한글자씩 쪼개서 배열에 넣어준 후 for문을 돌리면서 하나씩 꺼내는데 

인덱스가 홀수일 경우(연산자가 있을 경우) 연산자가 +인지 -인지 확인한 후 다음 인덱스의 숫자를 더하거나 빼는 코드이다.

 

그런데 구글에 검색해보니 파이썬에 eval()이라는 함수가 있다는걸 알게 되었다.

eval 함수는 문자열로 받은 수식을 계산해서 결과를 반환하는 함수라고 한다.

이 함수를 쓰면 위의 코드를 한줄로 줄일 수 있다. ㄷㄷ

 

def solution(my_string):
    answer = eval(my_string)
    return answer

 

코테 문제를 왜 많은 사람들이 파이썬으로 푸는지 또 한번 알게된 날... : )