{"id":34322,"date":"2024-11-01T09:26:48","date_gmt":"2024-11-01T09:26:48","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34322"},"modified":"2024-11-01T10:57:43","modified_gmt":"2024-11-01T10:57:43","slug":"c-coding-test-course-minimum-spanning-tree-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34322\/","title":{"rendered":"C++ Coding Test Course, Minimum Spanning Tree"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this blog post, we will discuss one of the frequently asked questions in coding tests using C++, <strong>Minimum Spanning Tree<\/strong>. We will use Prim&#8217;s algorithm and Kruskal&#8217;s algorithm, and we will organize the theory by solving a concrete problem.<\/p>\n<h2>Problem Description<\/h2>\n<p>Given the following graph, find the minimum spanning tree. Finally, output the sum of the weights of the tree.<\/p>\n<pre>\nInput:\n5 7\n1 2 3\n1 3 4\n2 3 2\n2 4 6\n3 4 1\n3 5 5\n4 5 2\n\nOutput:\n6\n<\/pre>\n<p>The structure of the input is as follows:<\/p>\n<ul>\n<li>First line: number of vertices <code>V<\/code> and number of edges <code>E<\/code><\/li>\n<li>The next <code>E<\/code> lines: information about each edge (Vertex1, Vertex2, Weight)<\/li>\n<\/ul>\n<h2>Problem Solving Method<\/h2>\n<p>To solve the above problem, we can use Prim&#8217;s algorithm and Kruskal&#8217;s algorithm. Here, we will solve the problem using Prim&#8217;s algorithm. Prim&#8217;s algorithm starts from an arbitrary vertex and gradually expands the graph by selecting the edge with the smallest weight.<\/p>\n<h3>1. Overview of Prim&#8217;s Algorithm<\/h3>\n<p>Prim&#8217;s algorithm consists of the following steps:<\/p>\n<ol>\n<li>Select the starting vertex and choose the edge with the minimum weight among the edges connected to it.<\/li>\n<li>Include the vertex connected by the selected edge.<\/li>\n<li>Repeat the above steps until all vertices are included.<\/li>\n<\/ol>\n<h3>2. Implementing Prim&#8217;s Algorithm in C++<\/h3>\n<p>Now, let&#8217;s implement Prim&#8217;s algorithm in C++. Through this implementation, we will look at the process of solving a real problem.<\/p>\n<pre><code>\n#include <iostream>\n#include <vector>\n#include <queue>\n#include <utility>\n#include <algorithm>\nusing namespace std;\n\nconst int MAX_V = 100; \/\/ Maximum number of vertices\nconst int INF = 1e9; \/\/ Representation of infinity\n\nvector<pair<int, int>> graph[MAX_V]; \/\/ Adjacency list\nint key[MAX_V]; \/\/ Minimum weight array\nbool inMST[MAX_V]; \/\/ Inclusion in MST\n\nint prim(int start, int V) {\n    priority_queue<pair<int, int>, vector<pair<int, int>>, greater<pair<int, int>>> pq;\n    fill(key, key + V, INF);\n    fill(inMST, inMST + V, false);\n\n    key[start] = 0; \/\/ The key value of the starting vertex is 0\n    pq.push({0, start}); \/\/ (Weight, Vertex)\n\n    int totalWeight = 0; \/\/ Total weight of the minimum spanning tree\n\n    while (!pq.empty()) {\n        int u = pq.top().second;\n        pq.pop();\n\n        if (inMST[u]) continue; \/\/ If already included in MST\n\n        totalWeight += key[u]; \/\/ Add the key value of the current vertex to the total weight\n        inMST[u] = true; \/\/ Add to MST\n\n        for (auto& edge : graph[u]) {\n            int v = edge.first;\n            int weight = edge.second;\n\n            \/\/ If the current edge is not included in MST and weight is smaller\n            if (!inMST[v] && weight < key[v]) {\n                key[v] = weight; \/\/ Update minimum weight\n                pq.push({key[v], v}); \/\/ Add to queue\n            }\n        }\n    }\n\n    return totalWeight;\n}\n\nint main() {\n    int V, E;\n    cin >> V >> E;\n\n    for (int i = 0; i < E; i++) {\n        int u, v, weight;\n        cin >> u >> v >> weight;\n        \/\/ Stored in 0-indexed\n        graph[u - 1].push_back({v - 1, weight});\n        graph[v - 1].push_back({u - 1, weight});\n    }\n\n    cout << prim(0, V) << endl; \/\/ Starting vertex 0\n    return 0;\n}\n<\/code><\/pre>\n<h4>3. Code Explanation<\/h4>\n<p>The explanation of the above code is as follows:<\/p>\n<ul>\n<li>The graph is represented using an adjacency list. Each vertex has a list of connected vertices and their weights.<\/li>\n<li>A priority queue is used to efficiently select the edge with the minimum weight among the edges connected from the current vertex.<\/li>\n<li>The vertices included in MST are managed by the <code>inMST<\/code> array.<\/li>\n<li>Finally, it returns the total weight of the MST including all vertices.<\/li>\n<\/ul>\n<h4>4. Execution Example<\/h4>\n<p>When executing the input data, the following result is obtained:<\/p>\n<pre><code>\n5 7\n1 2 3\n1 3 4\n2 3 2\n2 4 6\n3 4 1\n3 5 5\n4 5 2\n<\/code><\/pre>\n<p>Output result:<\/p>\n<pre><code>\n6\n<\/code><\/pre>\n<h2>Finding Minimum Spanning Tree Using Kruskal's Algorithm<\/h2>\n<p>Following Prim's algorithm, we will look at how to solve the same problem using Kruskal's algorithm. Kruskal's algorithm operates based on edges, sorting all edges by weight and adding them from the smallest.<\/p>\n<h3>1. Overview of Kruskal's Algorithm<\/h3>\n<p>Kruskal's algorithm consists of the following steps:<\/p>\n<ol>\n<li>Sort the edges by weight.<\/li>\n<li>Select the smallest edge and add it to the MST if it does not create a cycle.<\/li>\n<li>Repeat until all edges are processed.<\/li>\n<\/ol>\n<h3>2. Implementing Kruskal's Algorithm in C++<\/h3>\n<p>Now, let's implement Kruskal's algorithm in C++.<\/p>\n<pre><code>\n#include <iostream>\n#include <vector>\n#include <algorithm>\nusing namespace std;\n\nstruct Edge {\n    int u, v, weight;\n};\n\nbool compare(Edge a, Edge b) {\n    return a.weight < b.weight;\n}\n\nint find(int parent[], int u) {\n    if (parent[u] != u) {\n        parent[u] = find(parent, parent[u]); \/\/ Path compression\n    }\n    return parent[u];\n}\n\nvoid unionSet(int parent[], int rank[], int u, int v) {\n    int root_u = find(parent, u);\n    int root_v = find(parent, v);\n    \n    if (root_u != root_v) {\n        if (rank[root_u] > rank[root_v]) {\n            parent[root_v] = root_u;\n        } else if (rank[root_u] < rank[root_v]) {\n            parent[root_u] = root_v;\n        } else {\n            parent[root_v] = root_u;\n            rank[root_u]++;\n        }\n    }\n}\n\nint kruskal(int V, vector<Edge>& edges) {\n    sort(edges.begin(), edges.end(), compare);\n    int parent[V], rank[V];\n    for (int i = 0; i < V; i++) {\n        parent[i] = i;\n        rank[i] = 0;\n    }\n\n    int totalWeight = 0; \/\/ Total weight of the MST\n    for (Edge edge : edges) {\n        int u = edge.u, v = edge.v;\n        \n        \/\/ Add to MST if no cycle is formed\n        if (find(parent, u) != find(parent, v)) {\n            unionSet(parent, rank, u, v);\n            totalWeight += edge.weight; \/\/ Add weight\n        }\n    }\n    \n    return totalWeight;\n}\n\nint main() {\n    int V, E;\n    cin >> V >> E;\n    vector<Edge> edges(E);\n\n    for (int i = 0; i < E; i++) {\n        cin >> edges[i].u >> edges[i].v >> edges[i].weight;\n        edges[i].u--; \/\/ 0-indexed\n        edges[i].v--; \/\/ 0-indexed\n    }\n\n    cout << kruskal(V, edges) << endl; \/\/ Output the total weight of the MST\n    return 0;\n}\n<\/code><\/pre>\n<h4>3. Code Explanation<\/h4>\n<p>The explanation of the code above is as follows:<\/p>\n<ul>\n<li>Define a structure <code>Edge<\/code> to store edges.<\/li>\n<li>Sort the edges by weight.<\/li>\n<li>Utilize the Union-Find data structure to check for cycles and add the edge to the MST if no cycles occur.<\/li>\n<\/ul>\n<h4>4. Execution Example<\/h4>\n<p>When executing the input data, the following result is obtained:<\/p>\n<pre><code>\n5 7\n1 2 3\n1 3 4\n2 3 2\n2 4 6\n3 4 1\n3 5 5\n4 5 2\n<\/code><\/pre>\n<p>Output result:<\/p>\n<pre><code>\n6\n<\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>In this session, we learned how to solve the Minimum Spanning Tree problem using Prim's algorithm and Kruskal's algorithm. Understanding the characteristics of each algorithm and their actual implementation methods is important, and one should familiarize themselves with these algorithms to solve various problems.<\/p>\n<p>The Minimum Spanning Tree problem is one of the basic concepts in graph theory and frequently appears in algorithm problems. Utilize the implementations above to practice solving various graph problems efficiently.<\/p>\n<p>I hope that viewers found this tutorial helpful, and if you have any further questions, please leave a comment. In the next post, we will cover another algorithm problem. Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this blog post, we will discuss one of the frequently asked questions in coding tests using C++, Minimum Spanning Tree. We will use Prim&#8217;s algorithm and Kruskal&#8217;s algorithm, and we will organize the theory by solving a concrete problem. Problem Description Given the following graph, find the minimum spanning tree. Finally, output the &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34322\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C++ Coding Test Course, Minimum Spanning Tree&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[111],"tags":[],"class_list":["post-34322","post","type-post","status-publish","format-standard","hentry","category-c-coding-test-tutorials-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++ Coding Test Course, Minimum Spanning Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/34322\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Coding Test Course, Minimum Spanning Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this blog post, we will discuss one of the frequently asked questions in coding tests using C++, Minimum Spanning Tree. We will use Prim&#8217;s algorithm and Kruskal&#8217;s algorithm, and we will organize the theory by solving a concrete problem. Problem Description Given the following graph, find the minimum spanning tree. Finally, output the &hellip; \ub354 \ubcf4\uae30 &quot;C++ Coding Test Course, Minimum Spanning Tree&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34322\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:26:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:57:43+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34322\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34322\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C++ Coding Test Course, Minimum Spanning Tree\",\"datePublished\":\"2024-11-01T09:26:48+00:00\",\"dateModified\":\"2024-11-01T10:57:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34322\/\"},\"wordCount\":577,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C++ Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34322\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34322\/\",\"name\":\"C++ Coding Test Course, Minimum Spanning Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:26:48+00:00\",\"dateModified\":\"2024-11-01T10:57:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34322\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34322\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34322\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Coding Test Course, Minimum Spanning Tree\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C++ Coding Test Course, Minimum Spanning Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/34322\/","og_locale":"ko_KR","og_type":"article","og_title":"C++ Coding Test Course, Minimum Spanning Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this blog post, we will discuss one of the frequently asked questions in coding tests using C++, Minimum Spanning Tree. We will use Prim&#8217;s algorithm and Kruskal&#8217;s algorithm, and we will organize the theory by solving a concrete problem. Problem Description Given the following graph, find the minimum spanning tree. Finally, output the &hellip; \ub354 \ubcf4\uae30 \"C++ Coding Test Course, Minimum Spanning Tree\"","og_url":"https:\/\/atmokpo.com\/w\/34322\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:26:48+00:00","article_modified_time":"2024-11-01T10:57:43+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34322\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34322\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C++ Coding Test Course, Minimum Spanning Tree","datePublished":"2024-11-01T09:26:48+00:00","dateModified":"2024-11-01T10:57:43+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34322\/"},"wordCount":577,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C++ Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34322\/","url":"https:\/\/atmokpo.com\/w\/34322\/","name":"C++ Coding Test Course, Minimum Spanning Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:26:48+00:00","dateModified":"2024-11-01T10:57:43+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34322\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34322\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34322\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C++ Coding Test Course, Minimum Spanning Tree"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=34322"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34322\/revisions"}],"predecessor-version":[{"id":34323,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34322\/revisions\/34323"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34322"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34322"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}