https://school.programmers.co.kr/learn/courses/30/lessons/12929
괄호 쌍의 개수가 주어질 때, 만들 수 있는 모든 가능한 괄호 문자열의 수 반환하기
재귀로 왼쪽 괄호 오른쪽 괄호 확인하면서 가능한 경우 answer 증가시키는 방식
public class Solution {
int answer = 0;
public int solution(int n) {
Generate(0, 0, n);
return answer;
}
public void Generate(int opened, int closed, int maxLen)
{
if (opened == closed && opened == maxLen)
{
answer += 1;
return;
}
if (opened < maxLen)
{
Generate(opened + 1, closed, maxLen);
}
if (closed < opened)
{
Generate(opened, closed + 1, maxLen);
}
}
}