반응형
괄호 회전하기 ( Level 2 )
Programmers 월간 코드 챌린지 시즌2 ( JavaScript )
나의 풀이
function solution(s) {
let res = 0;
for ( let i = 0; i < s.length; i++ ) {
const arr = [];
let str = s.slice(i) + s.slice(0,i)
for ( let j = 0; j < str.length; j++ ) {
switch ( str[j] ) {
case '(':
case '[':
case '{':
arr.push(str[j])
break;
case ')':
arr.slice(-1)[0] === '(' ?
arr.pop() : arr.push(str[j])
break;
case ']':
arr.slice(-1)[0] === '[' ?
arr.pop() : arr.push(str[j])
break;
case '}':
arr.slice(-1)[0] === '{' ?
arr.pop() : arr.push(str[j])
break;
}
}
if ( arr.length === 0 ) res += 1
}
return res
}
스택을 활용한 풀이
짝이 맞춰지면 스택에서 제거, 맞춰지지 않는다면 스택에 추가