undefined
[백준] 후위 표기식2 1935번 - Javascript / Node.js 본문
반응형
문제 설명

문제 풀이
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
let count = 0;
let expression = '';
rl.on('line', function (line) {
if (!count) {
} else if (count === 1) {
expression = line;
} else {
input.push(+line);
}
count++;
}).on('close', function () {
solution(input);
process.exit();
});
const solution = input => {
const stack = [];
const exp = expression.split('').map(e => {
if (e.charCodeAt(0) > 64 && e.charCodeAt(0) < 91) {
return (e = input[e.charCodeAt(0) - 65]);
}
return e;
});
exp.forEach((v, i) => {
if (!isNaN(v)) {
stack.push(v);
} else {
const one = +stack.pop();
const two = +stack.pop();
const ele = eval(two + v + one);
stack.push(ele);
}
});
console.log(stack[0].toFixed(2));
};
1. 주어진 식의 알파벳의 코드를 이용하여 주어진 값으로 바꾸기
2. 숫자로 변환한 식을 돌면서 숫자라면 stack에 넣는다.
3. 숫자가 아니라면 뒤에서 2개를 뽑아서 현재의 요소와 결합하여 식완성 => eval로 계산
4. 완성된 값을 다시 stack에 넣고 반복
5. toFixed(2) 활용하여 소수점 2자리까지 표현
배운 점
반응형
'Coding Test' 카테고리의 다른 글
[백준 - node.js] 외판원 순회2 10971번 (1) | 2022.09.21 |
---|---|
[백준] 다음 순열 10972번 - Javascript / Node.js (0) | 2022.09.11 |
[백준] 2559 수열 - Node/js (0) | 2022.07.29 |
[백준] 3273 두 수의 합 - Node/Js (0) | 2022.07.29 |
[백준] 11728 배열 합치기 - Node/Js (0) | 2022.07.29 |