[프로그래머스] 괄호 회전하기

쿼카쿼카·2023년 2월 16일
0

알고리즘

목록 보기
33/67

코드

function solution(s) {
  let ans = 0;
  
  for(let j=0; j<s.length; j++) {
      if(j!==0) s = s.slice(1) + s[0];
      const paren = {
          ']': '[',
          '}': '{',
          ')': '(',
      }
      const close = [];
      let right = true;
      
      for(let i=0; i<s.length; i++) {
          if(s[i] === '[' || s[i] === '(' || s[i] === '{') {
              close.push(s[i]);
              continue;
          }
          else {
              if(close.pop() !== paren[s[i]]) {
                  right = false;
                  break;
              }
              continue;
          }
          if(!right) break;
      }
      if(close.length || !right) continue;
      ans++;
  }
  return ans;
}
// 테스트 14 ({)}도 검증해야함

내 풀이

  • 1단계 괄호 회전하기랑 비슷해서 여유부리다 겁나 오래걸린 문제
  • 처음에 switch 문을 이용해 ( ) { } [ ] 이 세개의 괄호가 잘 닫혔는지만 확인

변수 발생

  • 테스트 14 너 외않되????
  • 괄호 닫는 거만 신경 쓰다 보니 쌓인 괄호 신경을 못 썼다구~
  • ( { ) } 이거 어쩔거??
  • 다시 코드로 돌아가 스택 만들고 검증
  • 괄호끼리 매핑을 통해 닫힌 괄호일 때 pop이 맞는지 확인
profile
쿼카에요

0개의 댓글