알고리즘/리트코드
22. Generate Parentheses
현진이에오
2022. 4. 16. 04:20
모든 쌍을 다 찾아야 하므로, dfs를 진행했다. 여는괄호, 닫는 괄호가 둘다 0이 되었을 때, 배열에 푸쉬를 해주었고, 오른쪽 괄호의 개수가 더 작다면 무조건 리턴조건, 왼쪽 괄호의 개수가 0보다 작다면 무조건 리턴 조건에 포함된다. 따라서 풀이는 아래와 같다.
const generateParenthesis = function(n) {
let res = [];
const dfs = (str, left, right) => {
if(left === 0 && right === 0) {
res.push(str);
return;
}
if(right < left || left < 0) return
dfs(str+"(", left - 1, right)
dfs(str+")", left, right - 1)
}
dfs("", n, n)
return res
};