diff --git a/janghw0126/README.md b/janghw0126/README.md
index fe3d2ba6..9447f03e 100644
--- a/janghw0126/README.md
+++ b/janghw0126/README.md
@@ -2,24 +2,26 @@
| 차시 | 날짜 | 문제유형 | 링크 | 풀이 |
|:----:|:---------:|:----:|:-----:|:----:|
-| 1차시 | 2024.1.1 | Hash | 완주하지 못한 선수 |[#4](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/4) |
-| 2차시 | 2024.1.4 | Implementation | 단어의 개수 |[#9](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/9) |
-| 3차시 | 2024.1.7 | Implementation | 단어 공부 |[#13](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/13) |
-| 4차시 | 2024.1.10 | Implementation | 달팽이는 올라가고 싶다 |[#20](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/20) |
-| 5차시 | 2024.1.13 | Mathematics | 소수 |[#24](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/24) |
-| 6차시 | 2024.1.16 | Stack | 스택 2 |[#26](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/26) |
-| 7차시 | 2024.1.19 | Stack | 괄호 |[#30](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/30) |
-| 8차시 | 2024.1.23 | Stack | 스택 수열 |[#36](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/36) |
-| 9차시 | 2024.1.25 | Stack | 균형잡힌 세상 |[#40](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/40) |
-| 10차시 | 2024.1.28 | Queue | 큐 |[#42](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/42) |
-| 11차시 | 2024.2.1 | Queue | 프린터 큐 |[#48](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/48) |
+| 1차시 | 2024.1.1 | 해시 | 완주하지 못한 선수 |[#4](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/4) |
+| 2차시 | 2024.1.4 | 구현 | 단어의 개수 |[#9](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/9) |
+| 3차시 | 2024.1.7 | 구현 | 단어 공부 |[#13](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/13) |
+| 4차시 | 2024.1.10 | 구현 | 달팽이는 올라가고 싶다 |[#20](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/20) |
+| 5차시 | 2024.1.13 | 수학 | 소수 |[#24](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/24) |
+| 6차시 | 2024.1.16 | 스택 | 스택 2 |[#26](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/26) |
+| 7차시 | 2024.1.19 | 스택 | 괄호 |[#30](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/30) |
+| 8차시 | 2024.1.23 | 스택 | 스택 수열 |[#36](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/36) |
+| 9차시 | 2024.1.25 | 스택 | 균형잡힌 세상 |[#40](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/40) |
+| 10차시 | 2024.1.28 | 큐 | 큐 |[#42](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/42) |
+| 11차시 | 2024.2.1 | 큐 | 프린터 큐 |[#48](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/48) |
| 12차시 | 2024.2.4 | DFS | 빵집 |[#53](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/53) |
| 13차시 | 2024.2.7 | DFS | 바이러스 |[#57](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/57) |
-| 14차시 | 2024.2.12 | Backtracking | N과 M (1) |[#61](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/61) |
-| 15차시 | 2024.2.15 | Backtracking | N과 M (2) |[#65](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/65) |
-| 16차시 | 2024.2.18 | Backtracking | N과 M (5) |[#66](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/66) |
-| 17차시 | 2024.2.21 | Backtracking | N과 M (3) |[#72](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/72) |
-| 18차시 | 2024.2.24 | Greedy | 잃어버린 괄호 |[#77](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/77) |
-| 19차시 | 2024.2.27 | Binary Search | 선분 위의 점 |[#79](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/79) |
-| 20차시 | 2024.3.2 | Binary Search | 수 찾기 |[#85](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/85) |
+| 14차시 | 2024.2.12 | 백트래킹 | N과 M (1) |[#61](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/61) |
+| 15차시 | 2024.2.15 | 백트래킹 | N과 M (2) |[#65](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/65) |
+| 16차시 | 2024.2.18 | 백트래킹 | N과 M (5) |[#66](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/66) |
+| 17차시 | 2024.2.21 | 백트래킹 | N과 M (3) |[#72](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/72) |
+| 18차시 | 2024.2.24 | 그리디 | 잃어버린 괄호 |[#77](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/77) |
+| 19차시 | 2024.2.27 | 이진 탐색 | 선분 위의 점 |[#79](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/79) |
+| 20차시 | 2024.3.2 | 이진 탐색 | 수 찾기 |[#85](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/85) |
+| 21차시 | 2024.3.5 | 정수론 | 약수의 합 |[#89](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/89) |
+| 22차시 | 2024.3.8 | 분할 정복 | 종이의 개수 |[#91](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/91) |
---
diff --git "a/janghw0126/\353\266\204\355\225\240 \354\240\225\353\263\265/Divide and Conquer_1.py" "b/janghw0126/\353\266\204\355\225\240 \354\240\225\353\263\265/Divide and Conquer_1.py"
new file mode 100644
index 00000000..7bfe1530
--- /dev/null
+++ "b/janghw0126/\353\266\204\355\225\240 \354\240\225\353\263\265/Divide and Conquer_1.py"
@@ -0,0 +1,40 @@
+import sys
+input= sys.stdin.readline
+# 재귀를 사용하기 위해 최대 깊이를 설정해준다.
+sys.setrecursionlimit(1000)
+
+# N을 입력받는다.
+n=int(input())
+
+# N개의 정수들을 행렬로 입력받는다.
+matrix=[list(map(int,input().split())) for _ in range(n)]
+
+# 종이의 갯수를 저장하는 리스트를 초기화한다.
+cnt=[]
+
+# 분할 정복을 시작한다.
+def divide(x,y,n):
+ # 현재 구간의 색깔을 저장한다.
+ color=matrix[x][y]
+ # 현재 구간 내의 모든 정수들을 반복하면서 색깔이 같은지 확인한다.
+ for i in range(x,x+n):
+ for j in range(y,y+n):
+ # 색깔이 다른 경우 구간을 9개로 나누어 재귀적으로 divide 함수를 호출한다.
+ if color != matrix[i][j]:
+ # 9구간으로 나누기 위해 a와 b를 0부터 2까지 반복한다.
+ for a in range(3):
+ for b in range(3):
+ # 현재 구간을 9개의 작은 구간으로 분할하기 위해 divide 함수를 재귀 호출한다.
+ divide(x+(n//3)*a,y+(n//3)*b,n//3)
+ return
+ # 색깔에 따라서 갯수를 추가해준다.
+ if color==1:
+ cnt.append(1)
+ elif color==-1:
+ cnt.append(-1)
+ else:
+ cnt.append(0)
+
+divide(0,0,n)
+# 종이의 갯수를 출력한다.
+print(cnt.count(-1),cnt.count(0),cnt.count(1),sep="\n")
\ No newline at end of file
diff --git "a/janghw0126/\354\240\225\354\210\230\353\241\240/number theory_1.py" "b/janghw0126/\354\240\225\354\210\230\353\241\240/number theory_1.py"
new file mode 100644
index 00000000..0c9215b7
--- /dev/null
+++ "b/janghw0126/\354\240\225\354\210\230\353\241\240/number theory_1.py"
@@ -0,0 +1,25 @@
+MAX = 1000000
+# 각 숫자의 약수의 합을 저장하는 리스트를 선언한다.
+dp = [1] * (MAX + 1)
+# dp 리스트의 누적 합을 저장하는 리스트를 선언한다.
+s = [0] * (MAX + 1)
+# 2부터 MAX까지의 수에 대해 반복문을 실행한다.
+for i in range(2, MAX + 1):
+ j = 1
+ # 각 숫자 i에 대해 i의 배수들을 찾아가며 dp 리스트의 값을 업데이트한다.
+ while i * j <= MAX:
+ # 예를 들어 i가 2일 경우 dp[2], dp[4], dp[6], ... 등을 i만큼 증가시긴다.
+ dp[i * j] += i
+ j+=1
+# 1부터 MAX까지의 숫자에 대해 s 리스트를 누적합으로 계산한다.
+for i in range(1, MAX + 1):
+ s[i] = s[i-1] + dp[i]
+iter = int(input())
+ans = []
+for k in range(iter):
+ # 입력으로 들어오는 iter 횟수만큼 반복문을 실행하면서 n 값을 입력받는다.
+ n = int(input())
+ # s[n] 값을 ans 리스트에 추가한다.
+ ans.append(s[n])
+# ans 리스트의 값을 줄바꿈으로 구분하여 출력한다.
+print('\n'.join(map(str,ans)) + '\n')
\ No newline at end of file