kakasoo

[node.js] 잃어버린 괄호 (백준 1541번) 본문

프로그래밍/알고리즘 풀이

[node.js] 잃어버린 괄호 (백준 1541번)

카카수(kakasoo) 2021. 3. 30. 09:32
반응형

그렇게 어려운 문제는 아니었다. 그냥 마이너스를 할 때, 최대한 크게 마이너스를 해주면 된다.
그래서 마이너스가 나오면 마이너스 뒤로 있는 모든 플러스를 우선시해줘서 빼야할 값을 크게 바꿔주면 된다.
그래서 -를 기준으로 문자열을 split 해주고, 각 요소들을 전부 더 해준다.

예를 들어 43 - 43 + 45 - 45가 라는 문자열이 있으면 ( 띄어쓰기는 원래 없어야 한다. )
43,48,45 라는 숫자 배열로 바꿔주고, 앞에서부터 차례대로 빼주면 된다.

const readline = require("readline");

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

rl.on("line", (line) => {
    main(line);
    rl.close();
}).on("close", () => {
    process.exit();
});

/**
 *
 * @param {string} line
 */
const main = (line) => {
    const minuses = line.split("-").map((el) =>
        el
            .split("+")
            .map(Number)
            .reduce((acc, cur) => acc + cur)
    );

    console.log(minuses.reduce((acc, cur) => (acc -= cur)));
};
반응형