diff --git a/LJEDD2/2024-2/README.md b/LJEDD2/2024-2/README.md
index fb0e7d6..df7d878 100644
--- a/LJEDD2/2024-2/README.md
+++ b/LJEDD2/2024-2/README.md
@@ -10,3 +10,9 @@
| 6차시 | 2024.08.03 | 완전탐색 | 피로도 | [#6](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/141) |
| 7차시 | 2024.09.01 | 위상정렬 | 줄 세우기 | [#7](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/152) |
| 8차시 | 2024.09.04 | 위상정렬 | 문제집 | [#8](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/154) |
+| 9차시 | 2024.09.07 | 스택 | 원숭이 매달기 | [#9](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/156) |
+| 10차시 | 2024.09.11 | 우선순위 큐 | 카드 정렬하기 | [#10](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/159) |
+| 11차시 | 2024.09.18 | 우선순위 큐 | N번째 큰 수 | [#11](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/161) |
+| 12차시 | 2024.09.21 | 우선순위 큐 | 카드 합체 놀이 | [#12](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/164) |
+| 13차시 | 2024.09.25 | 플로이드 워셜 | 친구 | [#13](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/167) |
+| 14차시 | 2024.10.02 | 브루트포스 | 세 개의 소수 문제 | [#14](https://github.com/AlgoLeadMe/AlgoLeadMe-4/pull/174) |
\ No newline at end of file
diff --git "a/LJEDD2/2024-2/\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244/\354\204\270 \352\260\234\354\235\230 \354\206\214\354\210\230 \353\254\270\354\240\234.py" "b/LJEDD2/2024-2/\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244/\354\204\270 \352\260\234\354\235\230 \354\206\214\354\210\230 \353\254\270\354\240\234.py"
new file mode 100644
index 0000000..f84d5a6
--- /dev/null
+++ "b/LJEDD2/2024-2/\353\270\214\353\243\250\355\212\270\355\217\254\354\212\244/\354\204\270 \352\260\234\354\235\230 \354\206\214\354\210\230 \353\254\270\354\240\234.py"
@@ -0,0 +1,30 @@
+import sys
+input = sys.stdin.readline
+
+# 하나의 소수를 여러 번 더할 수 있다. -> 브루트포스 가능
+# 5보다 큰 임의의 홀수로 세 소수의 합이 되는지
+def search(n):
+ for i in arr:
+ for j in arr:
+ for k in arr:
+ if i+j+k == n:
+ return i, j, k
+
+ else: # 안되면 0
+ return 0
+
+# 에라토스테네스의 체 - 소수 판별
+prime = [True] * 1001
+
+for i in range(2,101):
+ if prime[i]:
+ for j in range(i*2, 1001, i):
+ prime[j] = False
+
+# 소수 찾기
+arr = [i for i in range(2, 1001) if prime[i] == True]
+
+t = int(input())
+for _ in range(t):
+ n = int(input())
+ print(*search(n))
\ No newline at end of file
diff --git "a/LJEDD2/2024-2/\354\212\244\355\203\235/\354\233\220\354\210\255\354\235\264 \353\247\244\353\213\254\352\270\260.py" "b/LJEDD2/2024-2/\354\212\244\355\203\235/\354\233\220\354\210\255\354\235\264 \353\247\244\353\213\254\352\270\260.py"
new file mode 100644
index 0000000..4fd77b0
--- /dev/null
+++ "b/LJEDD2/2024-2/\354\212\244\355\203\235/\354\233\220\354\210\255\354\235\264 \353\247\244\353\213\254\352\270\260.py"
@@ -0,0 +1,37 @@
+# 더 간단한 풀이 ... (문자열)
+import sys
+input = sys.stdin.readline
+
+for _ in range(int(input())):
+ cnt = 0
+ s = input().rstrip()
+ while "[]" in s:
+ s = s.replace("[]", "")
+ cnt += 1
+
+ print(2**cnt)
+
+
+
+# import sys
+
+# input = sys.stdin.readline
+
+# for _ in range(int(input())):
+# s = input().rstrip() # 괄호 문자열
+
+# max_depth = 0 # 최대 깊이를 저장할 변수
+# tree = list() # 현재 열린 괄호를 저장할 스택임
+
+# for i in s:
+# # 여는 괄호일 경우 스택에 열린 괄호 추가
+# if i == '[':
+# tree.append('[')
+# continue
+# # 닫는 괄호일 경우
+# max_depth = max(len(tree), max_depth)
+# # 현재 깊이와 최대 깊이 중 큰 값을 저장하고
+# tree.pop() # 마지막 열린 괄호를 제거
+
+# print(2 ** max_depth) # 쌍을 이룰때 가지 생성, 가지2-.1개씩 나눠가짐
+# # 결국엔 2의 depth승
\ No newline at end of file
diff --git "a/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/N\353\262\210\354\247\270 \355\201\260 \354\210\230.py" "b/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/N\353\262\210\354\247\270 \355\201\260 \354\210\230.py"
new file mode 100644
index 0000000..57ae8b3
--- /dev/null
+++ "b/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/N\353\262\210\354\247\270 \355\201\260 \354\210\230.py"
@@ -0,0 +1,17 @@
+import sys, heapq
+input = sys.stdin.readline
+
+n = int(input())
+heap = []
+
+for _ in range(n):
+ for number in map(int, input().split()):
+
+ if len(heap) < n: # 비교 대상이 모자랄 경우
+ heapq.heappush(heap, number) #그대로 추가
+
+ else:
+ if number > heap[0]: # 제일 작은것보다 크면
+ heapq.heapreplace(heap, number) #작은거 빼고 큰거 넣어줌
+
+print(heap[0]) # 맨앞에 있는게 N번째로 큰놈
\ No newline at end of file
diff --git "a/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/\354\271\264\353\223\234 \354\240\225\353\240\254\355\225\230\352\270\260.py" "b/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/\354\271\264\353\223\234 \354\240\225\353\240\254\355\225\230\352\270\260.py"
new file mode 100644
index 0000000..ba42acf
--- /dev/null
+++ "b/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/\354\271\264\353\223\234 \354\240\225\353\240\254\355\225\230\352\270\260.py"
@@ -0,0 +1,18 @@
+import sys
+import heapq
+input = sys.stdin.readline
+
+cards = list(int(input()) for _ in range(int(input().strip()))) # 데이터 입력받음
+heapq.heapify(cards) # 리스트를 힙구조로 바꿔주는 함수
+
+result = 0
+while len(cards) > 1 :
+ f = heapq.heappop(cards) # 첫번째 뭉탱이
+ s = heapq.heappop(cards) # 두번째 뭉탱이
+
+ result += f+s
+
+ # 바꿔치기 횟수가 최소가 되게끔
+ heapq.heappush(cards, f+s)
+
+print(result)
\ No newline at end of file
diff --git "a/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/\354\271\264\353\223\234 \355\225\251\354\262\264 \353\206\200\354\235\264.py" "b/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/\354\271\264\353\223\234 \355\225\251\354\262\264 \353\206\200\354\235\264.py"
new file mode 100644
index 0000000..d0a62f1
--- /dev/null
+++ "b/LJEDD2/2024-2/\354\232\260\354\204\240\354\210\234\354\234\204\355\201\220/\354\271\264\353\223\234 \355\225\251\354\262\264 \353\206\200\354\235\264.py"
@@ -0,0 +1,17 @@
+import heapq
+n, m = map(int,input().split())
+
+#힙 구조로 변환
+numbers = list(map(int,input().split()))
+heapq.heapify(numbers)
+
+for _ in range(m):
+
+ x = heapq.heappop(numbers)
+ y = heapq.heappop(numbers)
+
+ # x와 y 둘 다 값 교체
+ heapq.heappush(numbers, x+y)
+ heapq.heappush(numbers, x+y)
+
+print(sum(numbers))
diff --git "a/LJEDD2/2024-2/\355\201\220/\354\271\264\353\223\2341.py" "b/LJEDD2/2024-2/\355\201\220/\354\271\264\353\223\2341.py"
new file mode 100644
index 0000000..0086850
--- /dev/null
+++ "b/LJEDD2/2024-2/\355\201\220/\354\271\264\353\223\2341.py"
@@ -0,0 +1,14 @@
+import sys
+from collections import deque
+input = sys.stdin.readline
+
+n = int(input().strip())
+queue = deque([i for i in range(1, n+1)])
+result = []
+
+while len(queue) > 1:
+ result.append(queue.popleft())
+ queue.append(queue.popleft())
+else:
+ result.append(queue.popleft())
+print(" ".join(map(str, result)))
\ No newline at end of file
diff --git "a/LJEDD2/2024-2/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234/\354\271\234\352\265\254.py" "b/LJEDD2/2024-2/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234/\354\271\234\352\265\254.py"
new file mode 100644
index 0000000..ccc6017
--- /dev/null
+++ "b/LJEDD2/2024-2/\355\224\214\353\241\234\354\235\264\353\223\234 \354\233\214\354\205\234/\354\271\234\352\265\254.py"
@@ -0,0 +1,21 @@
+import sys
+input = sys.stdin.readline
+
+n = int(input())
+graph = [list(input().strip()) for _ in range(n)]
+visited = [[0] * n for _ in range(n)]
+
+for k in range(n):
+ for i in range(n):
+ for j in range(n):
+ if i == j:
+ continue
+
+ # 2-친구인 경우
+ if graph[i][j] == 'Y' or (graph[i][k] == 'Y' and graph[k][j] == 'Y'):
+ visited [i][j] = 1
+
+res = 0
+for row in visited:
+ res = max(res,sum(row))
+print(res)
\ No newline at end of file