diff --git "a/Ukj0ng/202512/20 BOJ G3 \354\244\200\354\230\244\353\212\224 \354\213\254\354\210\240\354\237\201\354\235\264!!.md" "b/Ukj0ng/202512/20 BOJ G3 \354\244\200\354\230\244\353\212\224 \354\213\254\354\210\240\354\237\201\354\235\264!!.md" new file mode 100644 index 00000000..f5f1b46c --- /dev/null +++ "b/Ukj0ng/202512/20 BOJ G3 \354\244\200\354\230\244\353\212\224 \354\213\254\354\210\240\354\237\201\354\235\264!!.md" @@ -0,0 +1,40 @@ +``` +import java.io.*; +import java.util.*; + +public class Main { + private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + private static final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + private static final int INF = (int)1e9 + 7; + private static int[][] dp; + private static int s; + private static String input; + + public static void main(String[] args) throws IOException { + init(); + int answer = dp[input.length()][s]; + bw.write(answer + "\n"); + bw.flush(); + bw.close(); + br.close(); + } + + private static void init() throws IOException { + s = Integer.parseInt(br.readLine()); + input = br.readLine(); + dp = new int[input.length()+1][s+1]; + + dp[0][0] = 1; + + for (int i = 0; i <= input.length(); i++) { + for (int j = i; j <= s; j++) { + int temp = dp[i][j-1] + dp[i-1][j]; + if (j >= 26) temp -= dp[i-1][j-26]; + temp %= INF; + if (temp < 0) temp += INF; + dp[i][j] = temp; + } + } + } +} +```