[LeetCode] Generate Parentheses Java

dustle·2023년 5월 25일
1

Generate Parentheses

괄호의 개수를 정해주고 만들 수 있는 괄호를 출력합니다.
여는 괄호와 닫는 괄호의 개수를 비교하며 조건에 맞게 재귀를 돌렸습니다.
닫는 괄호의 개수가 n과 같아지면 완성된 문자열이므로 답에 추가했습니다.

import java.util.*;

class Solution {
    List<String> answer = new ArrayList<>();
    public List<String> generateParenthesis(int n) {
        recursive(n, "", 0, 0);

        return answer;
    }

    public void recursive(int n, String s, int open, int end) {
        if(end == n) {
            answer.add(s);
            return;
        }

        if(open == 0 || open == end) {
            recursive(n, s + "(", open + 1, end);
        }
        
        if(open > end) {
            if(open < n) {
                recursive(n, s + "(", open + 1, end);
            }
            recursive(n, s + ")", open, end + 1);
        }
    }
}

0개의 댓글