From 71aa45b05be7647a12179cb49019caeb407d4a94 Mon Sep 17 00:00:00 2001 From: hayoun Date: Fri, 23 Jun 2023 22:45:13 +0900 Subject: [PATCH] =?UTF-8?q?[Week=2011]=20=ED=81=AC=EB=A3=A8=EC=8A=A4?= =?UTF-8?q?=EC=B9=BC,=20=ED=94=84=EB=A6=BC=20-=ED=95=98=EC=9C=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hayoun/\353\260\261\354\244\2001197.cpp" | 56 +++++++++++++++++++ .../hayoun/\353\260\261\354\244\2001806.cpp" | 53 ++++++++++++++++++ .../hayoun/\353\260\261\354\244\2001922.cpp" | 52 +++++++++++++++++ .../hayoun/\353\260\261\354\244\20027172.cpp" | 41 ++++++++++++++ 4 files changed, 202 insertions(+) create mode 100644 "11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001197.cpp" create mode 100644 "11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001806.cpp" create mode 100644 "11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001922.cpp" create mode 100644 "11-Kruskal&Prim/hayoun/\353\260\261\354\244\20027172.cpp" diff --git "a/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001197.cpp" "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001197.cpp" new file mode 100644 index 0000000..e3cf37f --- /dev/null +++ "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001197.cpp" @@ -0,0 +1,56 @@ +#include +#include +#include +using namespace std; +int V, E; + +int parent[100001]; +vector, int>> v; +int visited[1000001] = {0}; + +int find(int a) +{ + while (a != parent[a]) + { + a = parent[a]; + } + return a; +} +bool compare(pair, int> a, pair, int> b) +{ + return a.second < b.second; +} +int main() +{ + cin >> V >> E; + + for (int i = 0; i < E; i++) + { + int a, b, c; + cin >> a >> b >> c; + v.push_back({{a, b}, c}); + } + for (int i = 1; i <= V; i++) + { + parent[i] = i; + } + long long ans = 0; + sort(v.begin(), v.end(), compare); + // for (int i = 0; i < v.size(); i++) + // { + // cout << v[i].second; + // } + for (int i = 0; i < v.size(); i++) + { + if (find(v[i].first.first) == find(v[i].first.second)) + { + continue; + } + else + { + ans = ans + v[i].second; + parent[find(v[i].first.second)] = find(v[i].first.first); + } + } + cout << ans; +} \ No newline at end of file diff --git "a/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001806.cpp" "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001806.cpp" new file mode 100644 index 0000000..2223121 --- /dev/null +++ "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001806.cpp" @@ -0,0 +1,53 @@ +#include +#include +using namespace std; + +int N; +long long S; +long long num[1000001]; +int main() +{ + cin >> N >> S; + num[0] = 0; + for (int i = 1; i <= N; i++) + { + cin >> num[i]; + } + + for (int i = 1; i <= N; i++) + { + num[i] = num[i] + num[i - 1]; + } + + int min = 999999; + int start = 1; + int end = 1; + + while (end <= N) + { + int sum = 0; + sum = num[end] - num[start - 1]; + + if (sum >= S) + { + if (min > end - start + 1) + { + min = end - start + 1; + } + start++; + if (start > end) + { + end++; + } + } + if (sum < S) + { + end++; + } + } + if (min == 999999) + { + min = 0; + } + cout << min; +} \ No newline at end of file diff --git "a/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001922.cpp" "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001922.cpp" new file mode 100644 index 0000000..2976c9b --- /dev/null +++ "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\2001922.cpp" @@ -0,0 +1,52 @@ +#include +#include +#include +using namespace std; +int V, E; + +int parent[100001]; +vector, int>> v; +int visited[1000001] = {0}; + +int find(int a) +{ + while (a != parent[a]) + { + a = parent[a]; + } + return a; +} +bool compare(pair, int> a, pair, int> b) +{ + return a.second < b.second; +} +int main() +{ + cin >> V >> E; + + for (int i = 0; i < E; i++) + { + int a, b, c; + cin >> a >> b >> c; + v.push_back({{a, b}, c}); + } + for (int i = 1; i <= V; i++) + { + parent[i] = i; + } + long long ans = 0; + sort(v.begin(), v.end(), compare); + for (int i = 0; i < v.size(); i++) + { + if (find(v[i].first.first) == find(v[i].first.second)) + { + continue; + } + else + { + ans = ans + v[i].second; + parent[find(v[i].first.second)] = find(v[i].first.first); + } + } + cout << ans; +} \ No newline at end of file diff --git "a/11-Kruskal&Prim/hayoun/\353\260\261\354\244\20027172.cpp" "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\20027172.cpp" new file mode 100644 index 0000000..4b1aaad --- /dev/null +++ "b/11-Kruskal&Prim/hayoun/\353\260\261\354\244\20027172.cpp" @@ -0,0 +1,41 @@ +#include +#include +using namespace std; + +int N; +int card[10000001]; +int score[10000001] = {0}; +vector numbers; + +int main() +{ + ios::sync_with_stdio(false); + cin.tie(nullptr); + cout.tie(nullptr); + cin >> N; + + for (int i = 0; i < N; i++) + { + int a; + cin >> a; + numbers.push_back(a); + card[a] = 1; + } + + for (int i = 0; i < N; i++) + { + for (int j = numbers[i] * 2; j < 1000001; j += numbers[i]) + { + if (card[j] == 1 && j % numbers[i] == 0) + { + score[j]--; + score[numbers[i]]++; + } + } + } + + for (int i = 0; i < N; i++) + { + cout << score[numbers[i]] << " "; + } +} \ No newline at end of file