-
[10422] 괄호BOJ 2022. 1. 29. 07:05
https://www.acmicpc.net/problem/10422
10422번: 괄호
‘(‘, ‘)’ 문자로만 이루어진 문자열을 괄호 문자열이라 한다. 올바른 괄호 문자열이란 다음과 같이 정의된다. ()는 올바른 괄호 문자열이다. S가 올바른 괄호 문자열이라면, (S)도 올바른 괄호
www.acmicpc.net
<문제>
dp를 채우는 방식이 독특한 문제, 홀수일 때에는 불가능하니 짝수일 때만 고려해주면 된다.
카탈란 수와 관련 있는 문제다.
<소스코드>
1234567891011121314151617181920212223242526#include <bits/stdc++.h>using namespace std;using ll = long long;const ll M = 1e9 + 7;ll t, n, dp[5001];int main(void) {ios_base::sync_with_stdio(0);cin.tie(0);ll i, j;dp[0] = dp[2] = 1;for (i = 4; i <= 5000; i += 2) {for (j = 2; j <= i; j += 2) {dp[i] += dp[j - 2] * dp[i - j];dp[i] %= M;}}cin >> t;while (t--) {cin >> n;if (n % 2 == 1)cout << "0\n";elsecout << dp[n] % M << '\n';}return 0;}cs 'BOJ' 카테고리의 다른 글
[1238] 파티 (0) 2022.02.02 [12605] 단어순서 뒤집기 (0) 2022.01.29 [2216] 문자열과 점수 (0) 2022.01.29 [1505] 불 켜기 (0) 2022.01.26 [16935] 배열 돌리기 3 (0) 2022.01.26