본문 바로가기
Algorithm

[Algorithm][Recursion] 문제 풀이 #17 - Generate Parentheses

by Lee David 2022. 8. 4.
반응형
문제 링크

https://leetcode.com/problems/generate-parentheses/

내 풀이
List<String> list;
public List<String> generateParenthesis(int n) {
    list = new ArrayList();
    recursion("", 0, 0, n);
    return list;
}

private void recursion(String ans, int left, int right, int n) {
    if(ans.length() == n * 2) {
        list.add(ans);
        return;
    }

    if(left < n) recursion(ans + "(", left + 1, right, n);
    if(left > right) recursion(ans + ")", left, right + 1, n);

}
결과

재귀 함수를 이용해 문제를 푸는 방식이었다.

조금만 생각해보면 문제 풀이 방법이 있었고 정답에 근접한 방법으로 풀다가 답을 보고 코드가 깔끔해졌다.

사실 난이도가 medium이었지만 easy와 medium 그 중간 어디쯤??...

반응형