새소식

Baekjoon

[BaekJoon] 10799 번 쇠막대기 문제 - (nodejs)

  • -
728x90
문제 번호 :  10799

문제 바로가기 https://www.acmicpc.net/problem/10799

 

<<< 문제 내용 >>>

 


 

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

input = input[0].split('');

let arr= [];
let cnt= 0;

for(let i=0; i<input.length; i++){
    if(input[i] === '(') arr.push(input[i]);
    else{
        if(input[i-1] === '('){
            arr.pop();
            cnt += arr.length;
        }else{
            arr.pop();
            cnt++;
        }
    }
}

console.log(cnt);

* 처음에 레이저가 한칸 끊길 때 값을 어떻게 해야할지가 굉장히 고민이었다.

 

문제 자체가 어려운 문제는 아닌거 같았지만, 직접 레이저가 닿는 순간과 쇠막대기가 줄어드는 순간의 값들을

 

고려하다보니 쇠막대기가 줄어들 때, 막대기를 1개 추가해주면 된다는 것을 알아차리곤 쉽게 해결할 수 있었다.

 

 

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.