티스토리 뷰

https://www.acmicpc.net/problem/15926

 

15926번: 현욱은 괄호왕이야!!

첫 번째 입출력에서, 맨 처음 위치부터 4개를 잘라낸 (())가 가장 긴 올바른 괄호 문자열이다. 두 번째 입출력에서, 6번째 위치부터 8개를 잘라낸 ()((()))가 가장 긴 올바른 괄호 문자열이다.

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim().split('\n');
const N = input[0]
const bracket = input[1].split(''); 
let stack = [];


for(let i = 0; i<N; i++){
  const now = bracket[i];
  if(stack.length==0 || now=='('){
    stack.push(now)
  }else{
      let temp = 0;
      while(typeof stack[stack.length-1] == 'number'){
        temp+=stack.pop();
      }
      if(stack.length==0){
        stack.push(temp)
        stack.push(')')
      }else if(stack[stack.length-1]=='('){
        stack.pop();
        temp+=2;
        while(typeof stack[stack.length-1] == 'number'){
          temp+=stack.pop();
        }
        stack.push(temp);
      }else{
        stack.push(temp);
        stack.push(')')
      }
  }
}
const answer = stack.filter(v=>typeof v =='number');

if(answer.length==0){
  console.log(0)
}else{
  console.log(Math.max(...answer))
}
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함