Tags
- LV2
- ์๋ฃ๊ตฌ์กฐ
- CodingTest
- BFS
- queue
- ๊ทธ๋ํ ์ด๋ก
- ์ ๋ ฌ
- ๋๋น ์ฐ์ ํ์
- ์๋ฎฌ๋ ์ด์
- ์ ์๋ก
- Study
- PGM
- greedy
- ๋ฐฑํธ๋ํน
- Brute Force Algorithm
- ๊ทธ๋ํ ํ์
- SpringBoot
- Dynamic Programming
- ์ํ
- stack
- BOJ
- ๊ต์ฌ
- ๊ตฌํ
- sort
- DP
- Java
- ๋ฌธ์์ด
- Python
- ๊น์ด ์ฐ์ ํ์
- dfs
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_13699 : ์ ํ์ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ํ์์ผ๋ก ๋ฐฐ์ด์ ์ฑ์ฐ๋ dp ๋ฌธ์ ์ด๋ค.
- arr[0] = 1
- arr[n] = arr[0]*arr[n-1] + arr[1]*arr[n-2] + ... + arr[n-1]*arr[0]
๐ธ ์ฝ๋ ๐ธ
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
long[] arr = new long[n+1];
arr[0] = 1;
for (int i = 1; i <= n; i++) {
arr[i] = 0;
for (int j = 0; j < i; j++) {
arr[i] += arr[j]*arr[i-1-j];
}
}
System.out.println(arr[n]);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- dp๋ฐฐ์ด์ ํฌ๊ธฐ๋ 0~n ๊น์ง์ด๋ฏ๋ก n+1๊ฐ๋ก ์ ์ธํ๋ค.
- ์๋ฃํ์ ์์ 2๋ฒ์ ์ถ๋ ฅ์ด 4861946401452์ผ๋ก int๋ฅผ ์ด๊ณผํ๋ฏ๋ก long์ผ๋ก ์ ์ธํ๋ค.
- ์ฑ์์ผ ํ๋ dp๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 1๋ถํฐ n๊น์ง์ด๋ฏ๋ก ์ฒซ ๋ฐ๋ณต๋ฌธ์์ i๋ฅผ 1~n๋ก ์ํํ๋ค.
- ๋ค์ ํ ์ธ๋ฑ์ค(arr[i])๋ฅผ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ i๋ฒ ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ค.
- arr[i]์ ์ด๊ธฐ๊ฐ์ผ๋ก 0์ ๋ฃ๋๋ค.
- j๋ฅผ 0~i-1 ๋ก i๋ฒ ๋ฐ๋ณตํด์ dp๋ฐฐ์ด์ ๊ฐ์ ์ฑ์ด๋ค.
๐ธ end ๐ธ
- dp๋ฌธ์ ์ ์ ํ์์ ์๋ชป ์ดํดํด์ ์ฝ๋๋ฅผ ๋ค์ ๋ฏ์ด๊ณ ์ณ์ ํ์๋ค. ๋ฌธ์ ์์ฒด๋ ์ด๋ ต์ง ์์๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_2520 : ํฌ์ผ์ดํฌ ์ฌ๋ (0) | 2022.12.01 |
---|---|
BOJ_2193 : ์ด์น์ (0) | 2022.11.29 |
BOJ_9625 : BABBA (0) | 2022.11.24 |
BOJ_3182 : ํ๋์ด๋ ๊ณต๋ถ๊ฐ ํ๊ธฐ ์ซ์ด! (0) | 2022.11.22 |
BOJ_1388 : ๋ฐ๋ฅ ์ฅ์ (0) | 2022.11.21 |