// 정수 n이 주어질때 n쌍 괄호의 모든 조합을 배열에 담아 리턴하는 문제
/**
* @param {number} n
* @return {string[]}
*/
const generateParenthesis = function(n) {
function backtrack(left, right, str) {
if (str.length === limit) return arr.push(str)
if (left) backtrack(left - 1, right, str + '(')
if (right > left) backtrack(left, right - 1, str + ')')
}
const arr = []
const limit = n * 2
backtrack(n, n, '')
return arr
}