hsskey / algorithm-practice

🧑‍💻 Solving algorithms to level up
0 stars 0 forks source link

잃어버린 괄호 #12

Open hsskey opened 1 month ago

hsskey commented 1 month ago

잃어버린 괄호

문제 해결 과정

Step 1: 문제 이해하기

Step 2: 접근 방법

Step 3: 코드 설계 (수도코드)

1. 입력된 수식을 '-' 기호를 기준으로 분할하여 그룹을 생성한다.
   groups = 수식.split('-')

2. 결과를 저장할 변수 `answer`를 0으로 초기화한다.

3. 각 그룹을 순회하며 처리한다.
   for i = 0 to groups.length - 1:
       - 현재 그룹을 '+' 기호로 분할하고, 각 숫자를 더해 그룹의 합을 구한다.
         curSum = sum(groups[i].split('+'))

       - 첫 번째 그룹은 무조건 더한다.
         if i == 0:
             answer += curSum

       - 첫 번째 그룹이 아닌 경우는 모두 뺀다.
         else:
             answer -= curSum

4. 최종 결과를 출력한다.
   print(answer)

Step 4: 코드 구현

 const fs = require('fs')
 const filePath = process.platform === 'linux' ? '/dev/stdin' : `${__dirname}/input.txt`
 const input = fs.readFileSync(filePath).toString().split('\n')

 let groups = input[0].split('-')
 let answer = 0
 console.log(groups)
 for(let i = 0; i < groups.length; i++) {
    //각 그룹 내부에서 덧셈 연산 적용
    let cur = groups[i].split('+').map(Number).reduce((a, b) => a + b)
    if(i === 0) answer += cur // 첫번쨰 그룹은 항상 덧셈(+)
    else answer -= cur
 }

 console.log(answer)