https://school.programmers.co.kr/learn/courses/30/lessons/120902
def solution(my_string):
plus = "+"
answer = 0
my_string = my_string.split()
if my_string[1] == "+":
answer = int(my_string[0]) + int(my_string[2])
else:
answer = int(my_string[0]) - int(my_string[2])
return answer
처음에 간단히 생각해서 이렇게 풀었는데 해결이 되지 않았다. 왤까 싶었는데 연산이 꼭 한 번만 있는 것은 아니라는 걸 눈치챘다.
def solution(my_string):
my_string = my_string.split()
answer = int(my_string[0])
for i in range(1, len(my_string), 2):
if my_string[i] == "+":
answer += int(my_string[i + 1])
else:
answer -= int(my_string[i + 1])
return answer
생각해보니 답은 계속 누적시켜야했다. 그래서 가장 앞에 있는 숫자를 answer로 참조시켰고 answer에 연산자에 따라 다음 인덱스 숫자를 더할지 뺄지 분기 처리했다.
solution=eval
근데 이렇게 처리한 답도 있었는데 실무적으로 생각해보면 문자열로 나온 연산을 이렇게 처리한다는 거니까 단순한 코딩 테스트 전용 답이라고 생각했다.