올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모든 가능한 괄호 문자열의 갯수를 반환하는 함수 solution을 완성해 주세요.
괄호 쌍의 개수 N : 1 ≤ n ≤ 14, N은 정수
14C7
이 3400정도여서 가능하다고 생각했다.근데 괄호 쌍이라 28C14긴한데 아무튼 통과했다.
function isCorrect() {
let stack = [];
for (const x of visited) {
if (x) {
stack.push(x);
}
else {
if (!stack.length) return false;
stack.pop();
}
}
if (!stack.length) return true;
else return false;
}
function isCorrect() {
let stack = [];
for (const x of visited) {
if (x) stack.push(x);
else if (stack.length) stack.pop();
else return false;
}
return true;
}
function solution(n) {
let answer = 0;
let visited = Array(n * 2).fill(0);
function isCorrect() {
let stack = [];
for (const x of visited) {
if (x) stack.push(x);
else if (stack.length) stack.pop();
else return false;
}
return true;
}
function dfs(L, start) {
if (L === n) {
answer += isCorrect() ? 1 : 0;
}
else {
for (let i = start; i < n * 2; i++) {
visited[i] = 1;
dfs(L + 1, i + 1);
visited[i] = 0;
}
}
}
dfs(0, 0);
return answer;
}