์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๋ฐฐ์ด
- ๋ฐฑ์ค9093
- stream
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ์
- ๋ฐฑ์ค1874
- ๋
- ์๋ฐ
- ํ๋ฐฉ์ฟผ๋ฆฌ
- StringBuilder
- ์ฐ
- ๋ฐฑ์ค9012
- ์คํ์์ด
- ๋ฐ์ดํฐํ์
- ์ฐ์ฐ์
- java
- ์คํธ๋ฆผ
- ์คํ
- ์ฟ ํกERD
- ๋ฌธ์์ด
- StringBuffer
- ์ฟ ํกDB
- Today
- Total
Tech Log ๐ ๏ธ
๋ฐฑ์ค 1309) ๋๋ฌผ์ java ๋ณธ๋ฌธ
๋ถ์
์ฒ์์๋ ์ฌ์๊ฐ 1 ...n ๋ง๋ฆฌ ์ธ ๊ฒฝ์ฐ๋ก ๋๋ ์ ์๊ฐํด์ ์๊ฐ์ ๊ฝค ํ๋นํ๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ์ ๊ทผํ๋ฉด ์ฝ๋๊ฐ ๋๋ฌด ๋ณต์กํด์ง๋ฏ๋ก , ์ฌ์๊ฐ ์๋ '์ฐ๋ฆฌ'๋ฅผ ๊ธฐ์ค์ผ๋ก ์๊ฐ์ ํด์ผํ๋ค.
์ฐ๋ฆฌ๊ฐ 2X2 ์ธ ๊ฒฝ์ฐ(N=2) , ๋ ๋ฒ์งธ ์ค์ ์ฌ์๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ๋ ์ด ์ธ๊ฐ์ง์ด๋ค.
1. ์ฒซ๋ฒ์งธ ์นธ์ ์ฌ์๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ
์ฌ์ |
2. ๋๋ฒ์งธ ์นธ์ ์ฌ์๋ฅผ ๋ฃ๋ ๊ฒฝ์ฐ
์ฌ์ |
3. ์ฌ์๋ฅผ ์๋ฃ๋ ๊ฒฝ์ฐ
๊ฐ ๊ฒฝ์ฐ์ ๋ํด์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํด์ฃผ์ด์ผํ๋ค.
1๋ฒ์ ๊ฒฝ์ฐ๋ ์ฒซ๋ฒ์งธ ์ค์ ๋๋ฒ์งธ์นธ์ ์ฌ์๋ฅผ ๋ฃ๊ฑฐ๋ , ์์ ์ ๋ฃ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. (2๊ฐ์ ๊ฒฝ์ฐ์ ์)
2๋ฒ์ ๊ฒฝ์ฐ๋ ์ฒซ๋ฒ์งธ ์ค์ ์ฒซ๋ฒ์งธ์นธ์ ์ฌ์๋ฅผ ๋ฃ๊ฑฐ๋ , ์์ ์ ๋ฃ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. (2๊ฐ์ ๊ฒฝ์ฐ์ ์)
3๋ฒ์ ๊ฒฝ์ฐ๋ ์ฒซ๋ฒ์งธ ์ค์ ์ฒซ๋ฒ์งธ,๋๋ฒ์งธ์นธ์ ์ฌ์๋ฅผ ๋ฃ๊ฑฐ๋ , ์์ ์ ๋ฃ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. (3๊ฐ์ ๊ฒฝ์ฐ์ ์)
์ด๋ฅผ ์์ผ๋ก ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์๋ค.
dp[2][1] = dp[1][0] + dp[2]; // 1๋ฒ ๊ฒฝ์ฐ
dp[2][2] = dp[1][0] + dp[0]; // 2๋ฒ ๊ฒฝ์ฐ
dp[2][0] = dp[1][0] + dp[1][1] + dp[2]; // 3๋ฒ ๊ฒฝ์ฐ
์ด์ ์ฐ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ๋๋ ค๊ฐ๋ฉด์ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํด์ฃผ๋ฉด ๋๋ค.
์ฐ๋ฆฌ๊ฐ 2X3 ์ธ ๊ฒฝ์ฐ(N=3) ,
์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํด์ฃผ๋ฉด ๋๋ค.
์ฐ๋ฆฌ๊ฐ 2X4 ์ธ ๊ฒฝ์ฐ(N=4) ,
์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํด์ฃผ๋ฉด ๋๋ค.
์ฝ๋
import java.util.Scanner;
public class Main {
static long[][] dp;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
dp = new long[num + 1][3];
dp[1][0] = dp[1][1] = dp[1][2] = 1;
for (int i = 2; i <= num; i++) {
dp(i);
}
long result = (dp[num][0] + dp[num][1] + dp[num][2]) % 9901;
System.out.println(result);
}
static void dp(int num) {
dp[num][0] = (dp[num - 1][1] + dp[num - 1][2] + dp[num - 1][0]) % 9901;
dp[num][1] = (dp[num - 1][0] + dp[num - 1][2]) % 9901;
dp[num][2] = (dp[num - 1][0] + dp[num - 1][1]) % 9901;
}
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 2156๋ฒ) ํฌ๋์ฃผ ์์ java (0) | 2023.03.01 |
---|---|
๋ฐฑ์ค 9465) ์คํฐ์ปค java (0) | 2023.02.27 |
๋ฐฑ์ค 1149๋ฒ) RGB๊ฑฐ๋ฆฌ java (0) | 2023.02.24 |
๋ฐฑ์ค 2225๋ฒ) ํฉ๋ถํด java (0) | 2023.02.22 |
๋ฐฑ์ค1463๋ฒ ์๊ฐ ์ด๊ณผ ๋ ์ด์ (0) | 2023.02.18 |