작성일 : 2022년 1월 21일

문제 : https://www.acmicpc.net/problem/1541

해설 : https://ghost4551.tistory.com/12

어떻게 풀면 되겠다는 알았는데..

코드로 구현 방법이 생각나지 않아서 블로그를 참조해서 아이디어를 얻었고 (코드 안봤음ㅎㅎ)

쉽게 해결할 수 있었다.

나의 풀이

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().trim().split('\\n');

let string = input[0];

console.log(
  string
    .split('-') // -를 기준으로 쪼갠다
    .map((str) => {
      if (str.split('').includes('+')) { //+가 들어있는 str을 찾는다
        // +기준으로 쪼개서 합을 더한뒤 반환한다
        return str.split('+').reduce((a, b) => Number(a) + Number(b));
      } else {
        // str에 +가 없으면 그냥 반환한다
        return Number(str);
      }
    }) // 최종적으로 남은 요소들을 - 연산 해준다
    .reduce((a, b) => Number(a) - Number(b))
);

후기

많이 부족하다고 느낀다 문제를 더 많이 접해서 구현력을 기르는 방법 밖에는..