diff --git a/백준/Silver/11051. 이항 계수 2/README.md b/백준/Silver/11051. 이항 계수 2/README.md
new file mode 100644
index 0000000..9098e84
--- /dev/null
+++ b/백준/Silver/11051. 이항 계수 2/README.md
@@ -0,0 +1,28 @@
+# [Silver II] 이항 계수 2 - 11051
+
+[문제 링크](https://www.acmicpc.net/problem/11051)
+
+### 성능 요약
+
+메모리: 55236 KB, 시간: 260 ms
+
+### 분류
+
+조합론, 다이나믹 프로그래밍, 수학
+
+### 제출 일자
+
+2025년 3월 4일 17:53:01
+
+### 문제 설명
+
+
자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 10,007로 나눈 나머지를 구하는 프로그램을 작성하시오.
+
+### 입력
+
+ 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\))
+
+### 출력
+
+ \(\binom{N}{K}\)를 10,007로 나눈 나머지를 출력한다.
+
diff --git a/백준/Silver/11051. 이항 계수 2/이항 계수 2.py b/백준/Silver/11051. 이항 계수 2/이항 계수 2.py
new file mode 100644
index 0000000..5b4f9fb
--- /dev/null
+++ b/백준/Silver/11051. 이항 계수 2/이항 계수 2.py
@@ -0,0 +1,16 @@
+import sys
+
+input = sys.stdin.readline
+N, K = map(int, input().split())
+D = [[0 for j in range(N+1)] for i in range(N+1)]
+
+for i in range(0, N+1):
+ D[i][0] = 1
+ D[i][i] = 1
+ D[i][1] = i
+
+for i in range(1, N+1):
+ for j in range(1, i+1):
+ D[i][j] = (D[i-1][j-1] % 10007 + D[i-1][j] %10007)%10007
+
+print(D[N][K])
\ No newline at end of file