Algorithm
- ์์ด๋ฒ๋ฆฐ ๊ดํธ -
๋ฌธ์
์ธ์ค์ด๋ ์์์ +, -, ๊ทธ๋ฆฌ๊ณ ๊ดํธ๋ฅผ ๊ฐ์ง๊ณ ์์ ๋ง๋ค์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ๋ชจ๋ ์ง์ ๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์ธ์ค์ด๋ ๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค.
๊ดํธ๋ฅผ ์ ์ ํ ์ณ์ ์ด ์์ ๊ฐ์ ์ต์๋ก ๋ง๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ์ถ๋ ฅ ์์
๋ฌธ์ ํ๊ธฐ
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input;
rl.on("line", function (line) {
input = line.toString().trim().split("");
}).on("close", function () {
let number = [];
// STEP01. ์ซ์ ์ชผ๊ฐ๊ธฐ
while (true) {
let plus = input.lastIndexOf("+");
let minus = input.lastIndexOf("-");
if (plus > minus) {
number.unshift(Number(input.splice(plus).join("")));
} else if (minus > plus) {
number.unshift(Number(input.splice(minus).join("")));
} else if (plus !== -1 && minus === -1) {
number.unshift(Number(input.splice(plus).join("")));
} else if (minus !== -1 && plus === -1) {
number.unshift(Number(input.splice(minus).join("")));
} else if (input.length !== 0) {
number.unshift(Number(input.splice(0).join("")));
}
if (input.length === 0) break;
}
// STEP02. ์ซ์ ๊ฐ์ถ๋ฆฌ๊ธฐ
let result = [];
let isMinus = false;
let caculate = 0;
let i = 0;
while (i < number.length) {
if (number[i] < 0) {
isMinus = true;
caculate += Math.abs(number[i]);
if (number[i + 1] < 0 || i === number.length - 1) {
result.push(Number("-" + caculate));
isMinus = false;
caculate = 0;
}
} else if (number[i] >= 0) {
if (isMinus) {
caculate += number[i];
if (i === number.length - 1) {
result.push(Number("-" + caculate));
isMinus = false;
caculate = 0;
}
} else {
result.push(number[i]);
}
}
i++;
}
console.log(result.reduce((past, curr) => past + curr, 0));
process.exit();
});
๋ฐ์ํ
'๊ฐ์ธ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค][Node.js] 1546๋ฒ : ํ๊ท (0) | 2021.07.07 |
---|---|
[๋ฐฑ์ค][Node.js] 1543๋ฒ : ๋ฌธ์ ๊ฒ์ (0) | 2021.07.06 |
[๋ฐฑ์ค][Node.js] 1476๋ฒ : ๋ ์ง ๊ณ์ฐ (0) | 2021.07.04 |
[๋ฐฑ์ค][Node.js] 1475๋ฒ : ๋ฐฉ ๋ฒํธ (0) | 2021.07.03 |
[๋ฐฑ์ค][Node.js] 1463๋ฒ : 1๋ก ๋ง๋ค๊ธฐ (0) | 2021.07.03 |
๋๊ธ