Problem Solving/Baekjoon

[백준] 10422 괄호 - Dynamic Programming / Java

graycode 2022. 10. 21. 14:30

 문제 링크

 

10422번: 괄호

‘(‘, ‘)’ 문자로만 이루어진 문자열을 괄호 문자열이라 한다. 올바른 괄호 문자열이란 다음과 같이 정의된다. ()는 올바른 괄호 문자열이다. S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호

www.acmicpc.net

 

 풀이 과정

 

• 풀이 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        long[] dp = new long[2501];
        dp[0] = dp[1] = 1;

        for (int i = 2; i <= 2500; i++) {
            for (int j = 0; j <= i - 1; j++)
                dp[i] = (dp[i] + dp[j] * dp[i - 1 - j]) % 1000000007L;
        }

        int t = Integer.parseInt(br.readLine());

        while (t-- > 0) {
            int l = Integer.parseInt(br.readLine());
            bw.write((l % 2 == 0 ? dp[l / 2] : 0) + "\n");
        }

        bw.flush();
    }

}