From 2ad9e93c48ed059c14c63fc83cd29cd4c94910da Mon Sep 17 00:00:00 2001 From: miniron_v <61517039+miniron-v@users.noreply.github.com> Date: Sun, 25 Feb 2024 00:18:14 +0900 Subject: [PATCH 1/3] 2024-02-24 --- miniron-v/README.md | 1 + ...\353\262\210\354\247\270 \354\210\230.cpp" | 35 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 "miniron-v/\354\235\264\353\266\204 \355\203\220\354\203\211/1300-K\353\262\210\354\247\270 \354\210\230.cpp" diff --git a/miniron-v/README.md b/miniron-v/README.md index d2bb009..fb6ad02 100644 --- a/miniron-v/README.md +++ b/miniron-v/README.md @@ -20,4 +20,5 @@ | 15차시 | 2024.02.15 | DP, 큰 수 연산 | [타일링](https://www.acmicpc.net/problem/1793) | [#56](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/56) | | 16차시 | 2024.02.18 | 수학 | [합](https://www.acmicpc.net/problem/1081) | [#61](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/61) | | 17차시 | 2024.02.21 | DP | [제곱수의 합](https://www.acmicpc.net/problem/1699) | [#64](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/64) | +| 18차시 | 2024.02.24 | 이분 탐색 | [K번째 수](https://www.acmicpc.net/problem/1300) | [#66](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/66) | --- diff --git "a/miniron-v/\354\235\264\353\266\204 \355\203\220\354\203\211/1300-K\353\262\210\354\247\270 \354\210\230.cpp" "b/miniron-v/\354\235\264\353\266\204 \355\203\220\354\203\211/1300-K\353\262\210\354\247\270 \354\210\230.cpp" new file mode 100644 index 0000000..204d554 --- /dev/null +++ "b/miniron-v/\354\235\264\353\266\204 \355\203\220\354\203\211/1300-K\353\262\210\354\247\270 \354\210\230.cpp" @@ -0,0 +1,35 @@ +#include + +// [n][n] 배열에서 upper 이하 수의 개수를 센다. +long countNum(long n, long upper) { + long count = 0; + + for (long i = 1; i <= n && i <= upper; ++i) { + count += std::min(upper / i, n); + } + + return count; +} + +int main() { + long n, k; + std::cin >> n >> k; + + long low = 0, high = k; + long mid = 0; + + while (low + 1 < high) { + mid = (low + high) / 2; + long count = countNum(n, mid); + + if (count < k) { + low = mid; + } + + else if (count >= k) { + high = mid; + } + } + + std::cout << high; +} \ No newline at end of file From 8cb9a796eca3d72b53aef13a6f5003540590b089 Mon Sep 17 00:00:00 2001 From: miniron_v <61517039+miniron-v@users.noreply.github.com> Date: Wed, 28 Feb 2024 00:45:05 +0900 Subject: [PATCH 2/3] 2024-02-28 --- miniron-v/README.md | 1 + ...4\353\213\250\352\262\275\353\241\234.cpp" | 58 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 "miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" diff --git a/miniron-v/README.md b/miniron-v/README.md index fb6ad02..d5d8800 100644 --- a/miniron-v/README.md +++ b/miniron-v/README.md @@ -21,4 +21,5 @@ | 16차시 | 2024.02.18 | 수학 | [합](https://www.acmicpc.net/problem/1081) | [#61](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/61) | | 17차시 | 2024.02.21 | DP | [제곱수의 합](https://www.acmicpc.net/problem/1699) | [#64](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/64) | | 18차시 | 2024.02.24 | 이분 탐색 | [K번째 수](https://www.acmicpc.net/problem/1300) | [#66](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/66) | +| 19차시 | 2024.02.27 | 다익스트라 | [최단경로](https://www.acmicpc.net/problem/1753) | [#70](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/70) | --- diff --git "a/miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" "b/miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" new file mode 100644 index 0000000..159fbeb --- /dev/null +++ "b/miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" @@ -0,0 +1,58 @@ +#include +#include +#include + +const int INF = 3000001; + +std::vector dijkstra(int start, int n, std::vector>>& graph) { + std::vector min_weight(n + 1, INF); + std::priority_queue, std::vector>, std::greater>> pq; + + min_weight[start] = 0; + pq.push({ 0, start }); + + while (pq.empty() == false) { + int cur_weight = pq.top().first; + int cur_node = pq.top().second; + pq.pop(); + + for (auto& pair : graph[cur_node]) { + int next_node = pair.first; + int next_weight = cur_weight + pair.second; + + if (next_weight < min_weight[next_node]) { + min_weight[next_node] = next_weight; + pq.push({ next_weight, next_node}); + } + } + } + + return min_weight; +} + +int main() { + // 입력 + int V, E, start; + std::cin >> V >> E >> start; + + std::vector>> graph(V + 1); + for (int i = 0; i < E; ++i) { + int u, v, w; + std::cin >> u >> v >> w; + + graph[u].push_back({v, w}); + } + + // 계산 + std::vector min_weight = dijkstra(start, V, graph); + + // 출력 + for (int i = 1; i < min_weight.size(); ++i) { + if (min_weight[i] == INF) { + std::cout << "INF\n"; + continue; + } + + std::cout << min_weight[i] << "\n"; + } +} \ No newline at end of file From 6ba0cecab0d59ad4f51228bf937ebdd02904d56c Mon Sep 17 00:00:00 2001 From: miniron_v <61517039+miniron-v@users.noreply.github.com> Date: Sat, 2 Mar 2024 00:55:53 +0900 Subject: [PATCH 3/3] 2024-03-01 --- miniron-v/README.md | 3 +- ...4\353\213\250\352\262\275\353\241\234.cpp" | 0 ...\353\212\224 \355\214\214\355\213\260.cpp" | 32 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) rename "miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" => "miniron-v/\352\267\270\353\236\230\355\224\204/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" (100%) create mode 100644 "miniron-v/\352\267\270\353\236\230\355\224\204/\355\224\214\353\241\234\354\235\264\353\223\234-\354\233\214\354\205\234/11265-\353\201\235\353\202\230\354\247\200 \354\225\212\353\212\224 \355\214\214\355\213\260.cpp" diff --git a/miniron-v/README.md b/miniron-v/README.md index d5d8800..3dd500d 100644 --- a/miniron-v/README.md +++ b/miniron-v/README.md @@ -21,5 +21,6 @@ | 16차시 | 2024.02.18 | 수학 | [합](https://www.acmicpc.net/problem/1081) | [#61](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/61) | | 17차시 | 2024.02.21 | DP | [제곱수의 합](https://www.acmicpc.net/problem/1699) | [#64](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/64) | | 18차시 | 2024.02.24 | 이분 탐색 | [K번째 수](https://www.acmicpc.net/problem/1300) | [#66](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/66) | -| 19차시 | 2024.02.27 | 다익스트라 | [최단경로](https://www.acmicpc.net/problem/1753) | [#70](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/70) | +| 19차시 | 2024.02.27 | 그래프, 다익스트라 | [최단경로](https://www.acmicpc.net/problem/1753) | [#70](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/70) | +| 20차시 | 2024.03.01 | 그래프, 플로이드-워셜 | [끝나지 않는 파티](https://www.acmicpc.net/problem/11265) | [#74](https://github.com/AlgoLeadMe/AlgoLeadMe-5/pull/74) | --- diff --git "a/miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" "b/miniron-v/\352\267\270\353\236\230\355\224\204/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" similarity index 100% rename from "miniron-v/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" rename to "miniron-v/\352\267\270\353\236\230\355\224\204/\353\213\244\354\235\265\354\212\244\355\212\270\353\235\274/1753-\354\265\234\353\213\250\352\262\275\353\241\234.cpp" diff --git "a/miniron-v/\352\267\270\353\236\230\355\224\204/\355\224\214\353\241\234\354\235\264\353\223\234-\354\233\214\354\205\234/11265-\353\201\235\353\202\230\354\247\200 \354\225\212\353\212\224 \355\214\214\355\213\260.cpp" "b/miniron-v/\352\267\270\353\236\230\355\224\204/\355\224\214\353\241\234\354\235\264\353\223\234-\354\233\214\354\205\234/11265-\353\201\235\353\202\230\354\247\200 \354\225\212\353\212\224 \355\214\214\355\213\260.cpp" new file mode 100644 index 0000000..8a0ddfe --- /dev/null +++ "b/miniron-v/\352\267\270\353\236\230\355\224\204/\355\224\214\353\241\234\354\235\264\353\223\234-\354\233\214\354\205\234/11265-\353\201\235\353\202\230\354\247\200 \354\225\212\353\212\224 \355\214\214\355\213\260.cpp" @@ -0,0 +1,32 @@ +#include +#include + +int main() { + int n, m; + std::cin >> n >> m; + + std::vector> graph(n + 1, std::vector(n + 1)); + + // INF와 자기 자신을 0으로 초기화하는 과정이 입력에 포함됨. + // 즉, 모든 간선이 연결되어 있음. + for (int i = 1; i <= n; ++i) { + for (int j = 1; j <= n; ++j) { + std::cin >> graph[i][j]; + } + } + + for (int k = 1; k <= n; ++k) { + for (int i = 1; i <= n; ++i) { + for (int j = 1; j <= n; ++j) { + graph[i][j] = std::min(graph[i][j], graph[i][k] + graph[k][j]); + } + } + } + + while (m--) { + int a, b, c; + std::cin >> a >> b >> c; + + std::cout << ((graph[a][b] <= c) ? "Enjoy other party\n" : "Stay here\n"); + } +} \ No newline at end of file