백준 [ALGORITHM] - 계산기 프로그램 (5613)

2024. 11. 21. 11:57코딩/백준 [ALGORITHM]

반응형
import operator

def calc_operator(operators, values):
    op = operators.pop()
    b = values.pop()
    a = values.pop()
    values.append(ops[op](a, b))

ops = {
    '+' : operator.add,
    '-' : operator.sub,
    '*' : operator.mul,
    '/' : lambda x, y: x // y, 
}

calc_data = []

while True:
    input_data = input()
    
    if input_data == '=':
        try:
            
            values = []
            operators = []
            for token in calc_data:
                if token.isdigit():
                    values.append(int(token))
                elif token in ops: 
                    if len(values) >= 2:
                        calc_operator(operators, values)
                    operators.append(token)
                else:
                    break

            if operators: 
                calc_operator(operators, values)
            print(values[0])

        except Exception as e:
            pass
        break
    else:
        calc_data.append(input_data)
반응형