From d68362da764b42caca98dc00c54ad0b120ebe148 Mon Sep 17 00:00:00 2001 From: HeeEul Shin <83682424+ShinHeeEul@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:41:57 +0900 Subject: [PATCH] =?UTF-8?q?[20250210]=20BOJ=20/=20G1=20/=20=EA=B3=84?= =?UTF-8?q?=EB=8B=A8=20=EC=88=98=20/=20=EC=8B=A0=ED=9D=AC=EC=9D=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ... \352\263\204\353\213\250 \354\210\230.md" | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 "ShinHeeEul/202502/10 BOJ G1 \352\263\204\353\213\250 \354\210\230.md" diff --git "a/ShinHeeEul/202502/10 BOJ G1 \352\263\204\353\213\250 \354\210\230.md" "b/ShinHeeEul/202502/10 BOJ G1 \352\263\204\353\213\250 \354\210\230.md" new file mode 100644 index 00000000..02d22696 --- /dev/null +++ "b/ShinHeeEul/202502/10 BOJ G1 \352\263\204\353\213\250 \354\210\230.md" @@ -0,0 +1,52 @@ +```java +import java.util.*; + +import java.io.*; + +public class Main { + + static long[][][] dp; + static int N; + static final long MOD = 1000000000L; + + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + + N = Integer.parseInt(br.readLine()); + if (N <= 9) { + System.out.println(0); + return; + } + + // i는 현재 길이 + // j는 마지막 값 + // k는 현재 방문 값 + dp = new long[N + 1][10][(1 << 10)]; + + for(int i = 1; i < 10; i++) { + dp[1][i][(1 << i)] = 1; + } + + for(int i = 2; i <= N; i++) { + for(int j = 0; j < 10; j++) { + for(int k = 0; k < (1 << 10); k++) { + if(j == 0) dp[i][j][k | ( 1 << j)] += dp[i - 1][j + 1][k] %MOD; + else if(j == 9) dp[i][j][k | ( 1 << j)] += dp[i-1][j - 1][k] %MOD; + else dp[i][j][k | ( 1 << j)] += (dp[i-1][j-1][k] + dp[i-1][j+1][k]) %MOD; + } + } + } + + long sum = 0; + + for(int j = 0; j < 10; j++) { + sum += dp[N][j][(1<< 10) - 1] %MOD; + } + + System.out.println(sum % MOD); + + } + +} + +```