상상쓰

[프로그래머스] 올바른 괄호의 갯수 본문

Coding Test

[프로그래머스] 올바른 괄호의 갯수

상상쓰 2021. 7. 29. 13:46

https://programmers.co.kr/learn/courses/30/lessons/12929

 

코딩테스트 연습 - 올바른 괄호의 갯수

올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모

programmers.co.kr

 

카탈란 수로 점화식에 기반하여 동적 계획 알고리즘으로 풀었다.

 

C0 = 1

Cn+1 = C0*Cn + C1*Cn-1 + C2*Cn-2 + ... + Cn*C0

 

answer = Cn

 

class Solution {
    public int solution(int n) {
        int answer = 0;
        int[] dp = new int[n+1];
        dp[0] = 1;
        dp[1] = 1;
        
        for (int i=2;i<n+1;i++) {
            for (int j=0;j<i;j++) {
                dp[i] += (dp[j] * dp[i-j-1]);
            }
        }
        
        answer = dp[n];
        
        return answer;
    }
}

'Coding Test' 카테고리의 다른 글

[백준] 명령 프롬프트  (0) 2021.07.30
[백준] 에라토스테네스의 체  (0) 2021.07.30
[프로그래머스] 베스트앨범  (0) 2021.07.29
[프로그래머스] 카펫  (0) 2021.07.28
[프로그래머스] 프린터  (0) 2021.07.27
Comments