728x90
https://www.acmicpc.net/problem/1670
1670번: 정상 회담 2
첫째 줄에 정상 회담에 참가한 사람의 수 N이 주어진다. 이 값은 10,000보다 작거나 같은 짝수이다.
www.acmicpc.net
문제
여러 개의 소국가로 나뉘어져 있었던 A국을 다시 하나의 국가로 합치기 위해 각 소국가의 대표 N명이 원탁에 모였다.
각 대표는 미리 원탁의 자리를 배정받았다. 회의를 시작하기 전에 일단 서로 악수를 하려고 한다. 각 대표는 한 사람과만 악수할수 있고, 모든 악수는 동시에 일어난다. 이때, 어떤 사람의 팔도 교차하지 않았을 때 완벽하게 악수했다고 한다.
N이 주어지면 완벽하게 악수하는 경우의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정상 회담에 참가한 사람의 수 N이 주어진다. 이 값은 10,000보다 작거나 같은 짝수이다.
출력
완벽한 악수의 경우의 수를 987654321로 나눈 나머지를 출력한다.
풀이
아래 문제와 거의 흡사하다
[JAVA][BOJ][G4] 10422. 괄호
10422번: 괄호 ‘(‘, ‘)’ 문자로만 이루어진 문자열을 괄호 문자열이라 한다. 올바른 괄호 문자열이란 다음과 같이 정의된다. ()는 올바른 괄호 문자열이다. S가 올바른 괄호 문자열이라면, (S)도
read-me.tistory.com
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
long[] dp = new long[10001];
dp[0] = 1;
dp[2] = 1;
for(int i = 2; i <= 5000; i++) {
for(int j = 0; j < i; j++) {
dp[i*2] += dp[j*2]*dp[(i-1-j)*2];
dp[i*2] %= 987654321;
}
}
int N = Integer.parseInt(br.readLine());
sb.append(dp[N]).append("\n");
System.out.println(sb);
}
}
결과
#자바 #java #boj #백준 #알고리즘
728x90
'알고리즘 > BOJ' 카테고리의 다른 글
[JAVA][BOJ][S1] 1389. 케빈 베이컨의 6단계 법칙 (0) | 2022.04.24 |
---|---|
[JAVA][BOJ][S1] 11403. 경로 찾기 (0) | 2022.04.22 |
[JAVA][BOJ][G4] 2573. 빙산 (0) | 2022.04.20 |
[JAVA][BOJ][G4] 10422. 괄호 (0) | 2022.04.19 |
[JAVA][BOJ][G4] 15685. 드래곤 커브 (0) | 2022.04.18 |