import readline from 'node:readline' const input = [] const readlineInterface = readline.createInterface({ input: process.stdin, output: process.stdout }) readlineInterface.on('line', (value) => { input.push(value) }) readlineInterface.on('close', solution) const operations = { '+': (number1, number2) => number1 + number2, '-': (number1, number2) => number1 - number2, '*': (number1, number2) => number1 * number2, '/': (number1, number2) => number1 / number2 } function solution () { console.log(reversePolishNotation(input[0])) } function reversePolishNotation(value) { if (value.length === 0) { return 0 } const stack = [] const values = value.split(' ') values.forEach((value) => { const number = Number(value) if (!isNaN(number)) { stack.push(number) } else if (operations.hasOwnProperty(value)) { const number1 = stack.pop() const number2 = stack.pop() const operation = operations[value] const result = operation(number2, number1) stack.push(result) } }) return stack.pop() }