백준 1541번 node.js 해결
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const arr = input[0].split('-');
let result = 0;
for (let i = 0 ; i < arr.length ; i += 1){
//더하기 연산자들의 그룹들을 더함
const plus = arr[i].split('+').map(Number).reduce((a, b) => a+b,0);
if(i===0) result += plus;
//그외에 뺄셈
else result -= plus;
}
console.log(result);
처음에는 무작정 +,-로 나눠야 생각해서 정규표현식으로 숫자와 +, -들을 분류해서 반복문을 돌려야 한다고 생각했습니다.
여러가지 테스트 케이스를 만들어 고려해보니 더하기 연산자부터 더해준 뒤, -연산자가 있는 경우에 빼주는 것이 구해야 하는 가장 최솟값을 만드는 방법이었습니다.
문제에서 구해야 하는 것을 침착하게 파악하고 내가 컴퓨터라면 어떻게 풀어냈을까, 하는 고민을 하게 되는 과정이 점점 더 즐거워지는 것 같습니다.