코드
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;
}
내 풀이
- 1단계 괄호 회전하기랑 비슷해서 여유부리다 겁나 오래걸린 문제
- 처음에 switch 문을 이용해 ( ) { } [ ] 이 세개의 괄호가 잘 닫혔는지만 확인
변수 발생
- 테스트 14 너 외않되????
- 괄호 닫는 거만 신경 쓰다 보니 쌓인 괄호 신경을 못 썼다구~
- ( { ) } 이거 어쩔거??
- 다시 코드로 돌아가 스택 만들고 검증
- 괄호끼리 매핑을 통해 닫힌 괄호일 때 pop이 맞는지 확인