LV.2 ๊ดํธ ํ์ ํ๊ธฐ
function check(s) {
// ์คํ ์ฌ์ฉํ์ฌ ํ์
// stack ๋ฐฐ์ด์ ๋ง์ง๋ง ๋ค์ด๊ฐ ๊ฐ์ด '[' ์ผ๋ ']'์ธ ๋ฌธ์๊ฐ ์ค๋ฉด pop ์๋๋ฉด ๋ฐฐ์ด์ ์ถ๊ฐ
//์์ ๊ฐ์ ๋ก์ง์ ๋ฐ๋ณตํ ๊ฒ
let stack = [s[0]]
var last = '';
let i = 0
for(let j = 1; j < s.length; j++) {
last = stack[i]
if(last == '('){
if(s[j] == ')') { // ํด๋น ์ง์ด ๋ง๋์ง ํ์ธ
stack.pop() // ๋ง์ผ๋ฉด ์ญ์
i -= 1
}else{
stack.push(s[j]) //๋ง์ง ์์ผ๋ฉด ์ถ๊ฐ
i += 1
}
}else if(last == '['){
if(s[j] == ']') {
stack.pop()
i -= 1
}else{
stack.push(s[j])
i += 1
}
}
else if(last == '{'){
if(s[j] == '}') {
stack.pop()
i -= 1
}else{
stack.push(s[j])
i += 1
}
}
else {
stack.push(s[j])
i += 1
}
}
// stack์ ๊ฐ์ด ๋จ์์์ผ๋ฉด ๊ดํธ์ ์ง์ด ์๋ง๋ ๊ฒ ์์ผ๋ฉด ๊ดํธ์ ์ง์ด ๋ง๋ ๊ฒ
if (stack.length > 0){
return false
}else{
return true
}
}
function solution(s){
let count = 0
for(let i = 0; i < s.length; i++){
if(check(s)) {
count += 1
}
s = s.slice(1) + s.slice(0,1) ;
// ๋ฌธ์์ด ์ฒซ๊ธ์๋ฅผ ๋ค๋ก, ๋๋จธ์ง๋ฅผ ์์ผ๋ก ๋ก๊ธฐ๊ธฐ
}
return count
}