괄호 회전하기

정하윤·2022년 11월 20일
0
function solution(s) {
  if (s.length % 2 === 1) return 0;// s의 길이가 홀수일시 무조건 오답
  let ss = s.split("");
  let stack = [];
  let count = 0;
  let an = true;
  for (let i = 0; i < ss.length; i++) {
    if (i !== 0) {
      let an = ss.shift();
      ss.push(an);
    }  //맨처음에는 하지않고 그 후 배열의 맨앞문자를뺀후 맨뒤로 넣기  
    an = true;
    let sp = [];
    for (let j = 0; j < ss.length; j++) {
      if (ss[j] === "(" || ss[j] === "{" || ss[j] === "[") sp.push(ss[j]);
      else {
        let ans = sp.pop();
        if (ss[j] === ")" && ans === "(") continue;
        if (ss[j] === "}" && ans === "{") continue;
        if (ss[j] === "]" && ans === "[") continue;
        an = false;
        break;
        //만약 제거하려는 괄호가 짝이 맞지 않을 경우 an을 false로 한후 멈추고 넘어간다.
      }
    }
    if (an) count++;
  }
  return count;
}

0개의 댓글