문제 번호 : 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개 추가해주면 된다는 것을 알아차리곤 쉽게 해결할 수 있었다.
도움이 되셨다면 공감 부탁드립니다.