tree;
+ while (cin >> num) {
+ tree.push_back(num);
+ }
+
+ //연산 + 출력
+ postOrder(0, tree.size() - 1, tree);
+}
\ No newline at end of file
diff --git "a/12_\355\212\270\353\246\254/\355\225\204\354\210\230/\355\214\214\354\235\274\354\227\205\353\241\234\353\223\234\354\232\251" "b/12_\355\212\270\353\246\254/\355\225\204\354\210\230/\355\214\214\354\235\274\354\227\205\353\241\234\353\223\234\354\232\251"
deleted file mode 100644
index e69de29b..00000000
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/README.md" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/README.md"
index e69de29b..15566a15 100644
--- "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/README.md"
+++ "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/README.md"
@@ -0,0 +1,76 @@
+# 최단 경로 (Shortest Path)
+
+[메인으로 돌아가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4)
+
+## 💻 튜터링
+
+### 라이브 코딩
+
+| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
+| :-----------------------------------------------------------------------: | :----------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | :----------: | :--------: |
+| 1753 | 최단경로 | | [바로가기]() | 다익스트라 |
+| 11404 | 플로이드 | | [바로가기]() | 플로이드-워셜 |
+| 11657 | 타임머신 | | [바로가기]() | 벨만-포드 |
+
+## ✏️ 과제
+
+### 마감기한
+
+~ 5 / 30 (화) 18:59 - 과제 제출
+~ 6 / 1 (목) 23:59 - 추가 제출
+
+### 필수
+
+| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
+| :-----------------------------------------------------------------------: | :------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | :-------: | :------------------------: |
+| 15685 | 드래곤 커브 | | [C++]() | 구현, 시뮬레이션 |
+| 1238 | 파티 | | [C++]() | 다익스트라 |
+| 2458 | 키 순서 | | [C++]() | 플로이드-워셜 |
+
+### 도전
+
+| 문제 번호 | 문제 이름 | 난이도 | 풀이 링크 | 분류 |
+| :--------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------: | :-------: | :--: |
+| 프로그래머스 | 합승 택시 요금 | **Lv.3** | [C++]() | 플로이드-워셜 |
+| 1865 | 웜홀 | | [C++]() | 벨만-포드 |
+---
+
+### 힌트
+
+
+드래곤 커브
+
+ 뱀의 머리와 꼬리에 변화가 생기고 있네요! 어떤 자료구조가 필요할까요? 뱀의 현재 위치를 직접 나타내보는 것도 좋을 것 같네요.
+
+
+
+
+파티
+
+ 이제 어떤 지점을 가기만 하는 게 아니라 오기도 해야 하니 다익스트라 알고리즘을 여러 번 사용해야겠습니다!
+
+
+
+
+키 순서
+
+ 두 사람 사이의 키 순위를 비교해볼까요? 나와 상대방과의 키 순위를 안다는 것은 내가 상대방과의 키 우열을 알거나 상대방이 나와의 키 우열을 안다는 것과 같습니다.
+
+
+
+
+합승 택시 요금
+
+ 함께 합승할 수 있는 지점은 총 몇 개인가요? 계산에 고려해야 할 가능한 시작, 도착 지점의 쌍이 어떻게 될까요?
+
+
+
+
+웜홀
+
+ 시간이 뒤로 갈 수 있다네요? 음수 가중치일때 사용할 수 있는 알고리즘을 배웠었죠! 것보다 벨만 포드는 분명 출발점이 특정한 한 점일때 가능한 알고리즘이라고 배웠는데,시작지점이 정해져있지 않네요. 그런데 특정 정점 하나만 확인하면 해당 정점과 단절된 노드가 포함된 음수 사이클을 발견할 수 없죠! 우리는 최단거리에는 관심이 없고, 오로지 음수 사이클의 존재 여부만 확인하고 싶은 상황에서 어떻게 하면 될까요?
+
+
+
+
+---
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/13_\354\265\234\353\213\250\352\262\275\353\241\234_\353\254\270\354\240\234\355\225\264\354\204\244.pdf" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/13_\354\265\234\353\213\250\352\262\275\353\241\234_\353\254\270\354\240\234\355\225\264\354\204\244.pdf"
new file mode 100644
index 00000000..748ad33b
Binary files /dev/null and "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/13_\354\265\234\353\213\250\352\262\275\353\241\234_\353\254\270\354\240\234\355\225\264\354\204\244.pdf" differ
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/13_\354\265\234\353\213\250\352\262\275\353\241\234_\354\235\264\353\241\240.pdf" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/13_\354\265\234\353\213\250\352\262\275\353\241\234_\354\235\264\353\241\240.pdf"
new file mode 100644
index 00000000..c55739f9
Binary files /dev/null and "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/13_\354\265\234\353\213\250\352\262\275\353\241\234_\354\235\264\353\241\240.pdf" differ
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/\355\214\214\354\235\274\354\227\205\353\241\234\353\223\234\354\232\251" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\352\260\225\354\235\230 \354\236\220\353\243\214/\355\214\214\354\235\274\354\227\205\353\241\234\353\223\234\354\232\251"
deleted file mode 100644
index e69de29b..00000000
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/1238.cpp" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/1238.cpp"
new file mode 100644
index 00000000..c30faf75
--- /dev/null
+++ "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/1238.cpp"
@@ -0,0 +1,64 @@
+#include
+#include
+#include
+
+using namespace std;
+typedef pair ci;
+const int INF = 1e5; // V * (가중치의 최대값)
+
+//다익스트라
+vector dijkstra(int s, int n, vector> &graph) {
+ vector dist(n + 1, INF); //dist 배열을 INF로 초기화
+ priority_queue, greater> pq; //<시작점부터의 거리, 정점>
+
+ //시작 정점 초기화
+ dist[s] = 0;
+ pq.push({0, s}); //pq queue에 시작점 저장
+ while (!pq.empty()) { //갱신할 정점이 있을 때까지
+ int weight = pq.top().first; //현재 정점까지의 경로값
+ int node = pq.top().second; //현재 탐색하려는 정점
+ //탐색하지 않은 정점 중 시작점에서 가장 가까운 정점
+ pq.pop();
+
+ if (weight > dist[node]) { //이미 더 작은 값으로 기록된 정점이 있다면
+ continue;
+ }
+ for (int i = 0; i < graph[node].size(); i++) { //node와 연결된 모든 정점에 대해
+ int next_node = graph[node][i].first; //연결된 정점
+ int next_weight = weight + graph[node][i].second; //시작점으로부터 현재 node를 거쳐
+ //다음 정점까지 가는 경로값
+ if (next_weight < dist[next_node]) { //최단 경로 값이 갱신된다면
+ dist[next_node] = next_weight;
+ pq.push({next_weight, next_node});
+ }
+ }
+ }
+ return dist;
+}
+
+int main()
+{
+ ios_base::sync_with_stdio(false);
+ cin.tie(NULL), cout.tie(NULL);
+ //입력
+ int n, m, x, s, e, T;
+ cin >> n >> m >> x;
+ vector> graph(n + 1, vector(0));
+ while(m--){
+ cin >> s >> e >> T;
+ graph[s].push_back({e, T});
+ }
+ //연산
+ vector dist_x = dijkstra(x, n, graph); //최단 시간 저장
+
+ int max_T = 0; //최대 시간의 값 초기화
+ for (int i = 1; i <= n; i++) {
+ vector dist_i = dijkstra(i, n, graph); // i -> X의의 최단 시간
+ max_T = max(max_T, dist_x[i] + dist_i[x]); //max_T 갱신
+ }
+
+ //출력
+ cout << max_T;
+
+ return 0;
+}
\ No newline at end of file
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/15685.cpp" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/15685.cpp"
new file mode 100644
index 00000000..1e2dda0e
--- /dev/null
+++ "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/15685.cpp"
@@ -0,0 +1,73 @@
+#include
+#include
+
+using namespace std;
+
+const int SIZE = 100;
+
+// 방향: 우(0), 상(1), 좌(2), 하(3)
+int dy[4] = { 0, -1, 0, 1 }; // 상, 하
+int dx[4] = { 1, 0, -1, 0 }; // 좌, 우
+
+// 1x1 정사각형 개수 계산
+int cntSquares(vector>& plane) {
+ int ans = 0; // ans 초기화
+ for (int i = 0; i < SIZE; i++) {
+ for (int j = 0; j < SIZE; j++) {
+ if (plane[i][j] && plane[i + 1][j] && plane[i][j + 1] && plane[i + 1][j + 1]) {
+ // 이웃한 네 개의 정사각형의 꼭짓점이 모두 1이면
+ ans++;
+ } // ans 증가시킴
+ }
+ }
+ return ans; // ans 반환
+}
+
+// 평면에 드래곤 커브를 표시
+void drawDragonCurve(vector>& plane, int x, int y, int d, int g) {
+ vector direct; // 방향 저장
+ plane[y][x] = plane[y + dy[d]][x + dx[d]] = true; // 평면에 표시 (초기화)
+ x += dx[d]; // x 좌표 업데이트
+ y += dy[d]; // y 좌표 업데이트
+ direct.push_back(d);
+ while (g--) { // 1 ~ g 세대 반복
+ int size_d = direct.size();
+ for (int j = size_d - 1; j >= 0; j--) { // 방향의 계산
+ int next_d = (direct[j] + 1) % 4; // 오른쪽으로 90도 회전해 다음 방향 계산
+ x += dx[next_d]; // 다음 x 좌표 업데이트
+ y += dy[next_d]; // 다음 y 좌표 업데이트
+ plane[y][x] = true; // 평면에 표시
+ direct.push_back(next_d); // 다음 세대의 방향 저장
+ }
+ }
+}
+
+/*
+* 규칙
+* 0 세대: 0
+* 1 세대: 0 1
+* 2 세대: 0 1 2 1
+* 3 세대: 0 1 2 1 2 3 2 1
+* ...
+* N 세대: concat((N-1세대), ((N-1세대 거꾸로) + 1)%4)
+* 평면(좌측 상단이 (0, 0))에 드래곤 커브를 그린 후 정사각형의 개수를 계산
+* 드래곤 커브는 평면 밖으로 나가지 않음으로 범위를 확인할 필요 없음
+* 1. 0 세대의 드래곤 커브를 먼저 저장 (초기 조건)
+* 2. 세대를 거듭하면서 드래곤 커브를 그림 (규칙을 파악하는 것이 중요)
+* 3. 드래곤 커브가 그려진 평면 상의 정사각형의 개수 계산 (네 꼭짓점 확인)
+*/
+
+int main()
+{
+ int n, x, y, d, g;
+ vector> plane(SIZE + 1, vector(SIZE + 1, false)); // 평면
+ // 입력
+ cin >> n;
+ // 연산 & 출력
+ while (n--) { // n개의 드래곤 커브 그리기
+ cin >> x >> y >> d >> g;
+ drawDragonCurve(plane, x, y, d, g);
+ }
+ cout << cntSquares(plane) << '\n'; // 평면의 정사각형 개수 출력
+ return 0;
+}
diff --git "a/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/2458.cpp" "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/2458.cpp"
new file mode 100644
index 00000000..1eb8b28c
--- /dev/null
+++ "b/13_\354\265\234\353\213\250 \352\262\275\353\241\234/\355\225\204\354\210\230/2458.cpp"
@@ -0,0 +1,58 @@
+#include
+#include
+#include
+using namespace std;
+const int INF = 1e9;
+
+//플로이드-워셜을 통해 각 점에서 다른 점으로 갈 수 있는지 확인
+void floydWarshall(int n, vector> &graph) {
+ for (int k = 1; k <= n; k++) { //중간 정점
+ for (int i = 1; i <= n; i++) { //출발 정점
+ for (int j = 1; j <= n; j++) { //도착 정점
+ //중간에 k를 거쳐서 i에서 j로 갈 때
+ int temp = graph[i][k] + graph[k][j];
+ graph[i][j] = min(graph[i][j], temp);
+ }
+ }
+ }
+}
+
+int main()
+{
+ ios_base::sync_with_stdio(false);
+ cin.tie(NULL), cout.tie(NULL);
+ //입력
+ int N, M, a, b;
+ cin >> N >> M;
+ vector> graph(N + 1, vector(N + 1, INF));
+ for (int i = 1; i <= N; i++) { //자기 자신과의 거리
+ graph[i][i] = 0;
+ }
+ while(M--){
+ cin >> a >> b; //a가 작은쪽, b가 큰쪽
+ graph[a][b] = 1; //간선이 존재함
+ }
+
+ //연산
+ floydWarshall(N, graph);
+
+ //출력
+ int ans = 0;
+ for(int i=1; i<=N; i++){
+ bool flag = true;
+ for(int j=1; j<=N; j++){
+ if(i == j) continue;
+ else if(graph[i][j] == INF && graph[j][i] == INF){
+ flag = false; //i와 j 사이의 가중치가 없는 경우
+ break;
+ }
+ }
+ if(flag) {
+ ans++;
+ }
+
+ }
+ cout << ans;
+
+ return 0;
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index f6aae660..15359915 100644
--- a/README.md
+++ b/README.md
@@ -27,10 +27,10 @@ SW학부 원스탑 튜터링에서 진행하는 코딩 테스트 대비 알고
| 2023.03.31 | DFS & BFS | [@kimyu0218](https://github.com/kimyu0218) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/07_DFS%20%26%20BFS/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C/07_DFS%26BFS_%EC%9D%B4%EB%A1%A0.pdf) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/07_DFS%20%26%20BFS) | - |
| 2023.04.07 | 백트래킹 | [@sujeong000](https://github.com/sujeong000) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/08_%EB%B0%B1%ED%8A%B8%EB%9E%98%ED%82%B9/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C/08_%EB%B0%B1%ED%8A%B8%EB%9E%98%ED%82%B9_%EC%9D%B4%EB%A1%A0.pdf) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/08_%EB%B0%B1%ED%8A%B8%EB%9E%98%ED%82%B9) | - |
| 2023.04.14 | 동적 계획법 | [@sujeong000](https://github.com/sujeong000) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/09_%EB%8F%99%EC%A0%81%20%EA%B3%84%ED%9A%8D%EB%B2%95/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C/09_%EB%8F%99%EC%A0%81%EA%B3%84%ED%9A%8D%EB%B2%95_%EC%9D%B4%EB%A1%A0.pdf) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/09_%EB%8F%99%EC%A0%81%20%EA%B3%84%ED%9A%8D%EB%B2%95) | - |
-| 2023.05.05 | 이분 탐색 | [@grdnr13](https://github.com/grdnr13) | [바로가기]() | [바로가기]() | 녹화 강의 제공 |
-| 2023.05.12 | 투 포인터 | [@kwakrhkr59](https://github.com/kwakrhkr59) | [바로가기]() | [바로가기]() | - |
-| 2023.05.19 | 트리 | [@dbswn](https://github.com/dbswn) | [바로가기]() | [바로가기]() | - |
-| 2023.05.26 | 최단 경로 | [@Dong-droid](https://github.com/Dong-droid) | [바로가기]() | [바로가기]() | - |
+| 2023.05.05 | 이분 탐색 | [@grdnr13](https://github.com/grdnr13) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/10_%EC%9D%B4%EB%B6%84%20%ED%83%90%EC%83%89/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C/10_%EC%9D%B4%EB%B6%84%ED%83%90%EC%83%89_%EC%9D%B4%EB%A1%A0.pdf) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/10_%EC%9D%B4%EB%B6%84%20%ED%83%90%EC%83%89) | 녹화 강의 제공 |
+| 2023.05.12 | 투 포인터 | [@kwakrhkr59](https://github.com/kwakrhkr59) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/11_%ED%88%AC%20%ED%8F%AC%EC%9D%B8%ED%84%B0/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/11_%ED%88%AC%20%ED%8F%AC%EC%9D%B8%ED%84%B0) | - |
+| 2023.05.19 | 트리 | [@dbswn](https://github.com/dbswn) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/12_%ED%8A%B8%EB%A6%AC/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C/12_%ED%8A%B8%EB%A6%AC_%EC%9D%B4%EB%A1%A0.pdf) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/12_%ED%8A%B8%EB%A6%AC) | - |
+| 2023.05.26 | 최단 경로 | [@Dong-droid](https://github.com/Dong-droid) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/blob/main/13_%EC%B5%9C%EB%8B%A8%20%EA%B2%BD%EB%A1%9C/%EA%B0%95%EC%9D%98%20%EC%9E%90%EB%A3%8C/13_%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C_%EC%9D%B4%EB%A1%A0.pdf) | [바로가기](https://github.com/Altu-Bitu-Official/Altu-Bitu-4/tree/main/13_%EC%B5%9C%EB%8B%A8%20%EA%B2%BD%EB%A1%9C) | - |
| 2023.06.02 | 유니온 파인드 | [@bsa0322](https://github.com/bsa0322) | [바로가기]() | [바로가기]() | 2기 자료 제공 |
| 2023.06.02 | 최소 신장 트리 | [@ZERO-black](https://github.com/ZERO-black) | [바로가기]() | [바로가기]() | 2기 자료 제공 |
| 2023.06.02 | 위상 정렬 | [@bsa0322](https://github.com/bsa0322) | [바로가기]() | [바로가기]() | 2기 자료 제공 |