Day Coding

ChoiDevv·2022년 12월 10일
0

문제

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

근데 이렇게 처리한 답도 있었는데 실무적으로 생각해보면 문자열로 나온 연산을 이렇게 처리한다는 거니까 단순한 코딩 테스트 전용 답이라고 생각했다.

profile
기억보단 기록을

0개의 댓글