본문 바로가기

알고리즘/리트코드

22. Generate Parentheses

모든 쌍을 다 찾아야 하므로, 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
};

'알고리즘 > 리트코드' 카테고리의 다른 글

139. Word Break  (0) 2022.05.08
54. Spiral Matrix  (0) 2022.04.30
33. Search in Rotated Sorted Array  (0) 2022.04.15
289. Game of Life  (0) 2022.04.13
704. Binary Search  (0) 2022.04.13