#. 테스트 문제
#. 결과 및 풀이
1. 풀이
@Test
void generatedParentheses() {
Assertions.assertArrayEquals(new String[]{"((()))", "(()())", "(())()", "()(())", "()()()"}, generatedParentheses_solution(3));
}
String[] generatedParentheses_solution(int n) {
List<String> result = new ArrayList<>();
dfs(result, "", n, n);
return result.stream().toArray(String[]::new);
}
private void dfs(List<String> result, String str, int left, int right) {
if(left < 0 || left > right)
return;
if(left == 0 && right == 0) {
result.add(str.toString());
return;
}
dfs(result, str+('('), left-1, right);
dfs(result, str+(')'), left, right-1);
}배웠다