Develop/백준 코딩테스트

백준 코딩테스트 1541 잃어버린 괄호 자바스크립트 node.js

codeGray 2022. 7. 4. 00:09
반응형

 

정답

//let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n');
const input = require('fs').readFileSync('./input.txt').toString().trim().split('-');
solution(input);

function solution(input){
    let result = 0;
    let arr = [];
    for(let i=0; i < input.length; i ++){
        arr.push(input[i].split('+').map(i => +i).reduce((sum, val) => sum + val, 0));
    }
    if(arr.length === 1){
        result = arr.reduce((sum, val)=> sum+val,0);
    }else{
        let first = arr[0];
        for(let i=1; i < arr.length; i ++){
            result = first - arr[i]
            first = result;
        }
    }
    console.log(result);
}

 

풀이

뺄셈을 제일 나중에 처리하면 가장 작은 수가 나온다.

예를들면 이런식 30 - (30 + 30 + 30) - (30 + 30)

마이너스 기호로 나눠서 배열에 저장하고 각 배열마다 값을 더하고 빼주면 된다.

마이너스 기호가 없으면 다 더하면 된다.

반응형