코딩테스트/프로그래머스

프로그래머스 >코딩테스트 연습 > 코딩 기초 트레이닝 > 간단한 식 계산하기

나는야석사 2024. 7. 9. 15:56

문제 설명

문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a와 b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.


제한사항
  • 0 ≤ a, b ≤ 40,000
  • 0을 제외하고 a, b는 0으로 시작하지 않습니다.

입출력 예binomialresult
"43 + 12" 55
"0 - 7777" -7777
"40000 * 40000" 1600000000

입출력 예 설명

입출력 예 #1

  • 예제 1번의 binomial은 "43 + 12"로 이 식을 계산한 결과인 43 + 12 = 55를 return 합니다.

입출력 예 #2

  • 예제 2번의 binomial은 "0 - 7777"로 이 식을 계산한 결과인 0 - 7777 = -7777을 return 합니다.

입출력 예 #3

  • 예제 3번의 binomial은 "40000 * 40000"으로 이 식을 계산한 결과인 40000 × 40000 = 1600000000을 return 합니다.
def solution(binomial):
    answer = 0
    a, op, b = binomial.split(" ")
    if op == '+':
        answer = a+b
    elif op == '-':
        answer = a - b
    elif op == '*':
        answer = a * b
    return answer

split으로 변수를 받게 되면 문자열 타입으로 반환

그래서 이렇게 하면 문자열은 사칙연산을 할 수 없다는 오류가 뜸

TypeError: can't multiply sequence by non-int of type 'str'

변수들에 int를 씌워주면 된다.

 

solution=eval

도 된단다... 허무

def solution(binomial):
    return eval(binomial)

허무 2