백준 1541번 JavaScript

yj j·2023년 12월 18일
1

백준 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);

처음에는 무작정 +,-로 나눠야 생각해서 정규표현식으로 숫자와 +, -들을 분류해서 반복문을 돌려야 한다고 생각했습니다.

여러가지 테스트 케이스를 만들어 고려해보니 더하기 연산자부터 더해준 뒤, -연산자가 있는 경우에 빼주는 것이 구해야 하는 가장 최솟값을 만드는 방법이었습니다.

문제에서 구해야 하는 것을 침착하게 파악하고 내가 컴퓨터라면 어떻게 풀어냈을까, 하는 고민을 하게 되는 과정이 점점 더 즐거워지는 것 같습니다.

profile
꿈꾸는 사람

0개의 댓글

관련 채용 정보