diff --git a/tgyuuAn/README.md b/tgyuuAn/README.md
index 5f86a575..f7cff13b 100644
--- a/tgyuuAn/README.md
+++ b/tgyuuAn/README.md
@@ -52,8 +52,12 @@
| 48차시 | 2024.03.25 | 벨만 포드 | 골목길 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/171
| 49차시 | 2024.03.29 | DP | KCM Travel | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/174
| 50차시 | 2024.04.01 | BFS | 열쇠 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/175
+| 51차시 | 2023.04.07 | BFS | 과외맨 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/179
+| 52차시 | 2023.05.06 | 위상정렬 | 게임 개발 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/182
+| 53차시 | 2023.05.09 | 백트래킹 | 2048 (Easy) | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/184
| 51차시 | 2024.04.07 | BFS | 과외맨 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/179
| 52차시 | 2024.05.06 | 위상정렬 | 게임 개발 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/182
| 53차시 | 2024.05.09 | 백트래킹 | 2048 (Easy) | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/184
| 54차시 | 2024.05.14 | 다익스트라 | 미확인 도착지 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/185
+| 55차시 | 2023.05.18 | 유니온 파인드 | 친구 네트워크 | https://github.com/AlgoLeadMe/AlgoLeadMe-1/pull/189
---
diff --git "a/tgyuuAn/\354\234\240\353\213\210\354\230\250 \355\214\214\354\235\270\353\223\234/\354\271\234\352\265\254 \353\204\244\355\212\270\354\233\214\355\201\254.py" "b/tgyuuAn/\354\234\240\353\213\210\354\230\250 \355\214\214\354\235\270\353\223\234/\354\271\234\352\265\254 \353\204\244\355\212\270\354\233\214\355\201\254.py"
new file mode 100644
index 00000000..4d44b637
--- /dev/null
+++ "b/tgyuuAn/\354\234\240\353\213\210\354\230\250 \355\214\214\354\235\270\353\223\234/\354\271\234\352\265\254 \353\204\244\355\212\270\354\233\214\355\201\254.py"
@@ -0,0 +1,40 @@
+import sys
+from collections import defaultdict
+
+def input(): return sys.stdin.readline().rstrip()
+
+def find_parent(element, graph):
+ if graph[element] == element: return element
+
+ parent = graph[element]
+ graph[element] = find_parent(parent, graph)
+ return graph[element]
+
+def union(first, second, graph, count):
+ x = find_parent(first, graph)
+ y = find_parent(second, graph)
+
+ if x == y: return
+
+ x, y = min(x, y), max(x, y)
+ graph[y] = x
+ count[x] += count[y]
+ count[y] = 0
+ return
+
+T = int(input())
+
+for _ in range(T):
+ F = int(input())
+ index = 1
+ parent = defaultdict(str)
+ count = defaultdict(lambda : 1)
+
+ for _ in range(F):
+ first, second = input().split()
+ if parent[first] == "": parent[first] = first
+ if parent[second] == "": parent[second] = second
+ if parent[first] != parent[second]: union(first, second, parent, count)
+
+ print(count[find_parent(first, parent)])
+
\ No newline at end of file