{"id":35096,"date":"2024-11-01T09:35:26","date_gmt":"2024-11-01T09:35:26","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=35096"},"modified":"2024-11-01T12:45:06","modified_gmt":"2024-11-01T12:45:06","slug":"%ec%bd%94%ed%8b%80%eb%a6%b0-%ec%bd%94%eb%94%a9%ed%85%8c%ec%8a%a4%ed%8a%b8-%ea%b0%95%ec%a2%8c-%ec%9d%b4%eb%b6%84-%ea%b7%b8%eb%9e%98%ed%94%84-%ed%8c%90%eb%b3%84%ed%95%98%ea%b8%b0-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/35096\/","title":{"rendered":"Kotlin coding test course, determining if a graph is bipartite"},"content":{"rendered":"<p><body><\/p>\n<h2>Problem Description<\/h2>\n<p>\n    This is a problem to determine whether the given graph is a bipartite graph. A bipartite graph is a graph that can be divided into two sets of vertices such that there are no edges between vertices of the same set.<br \/>\n    In other words, if two vertices <code>u<\/code> and <code>v<\/code> are connected, <code>u<\/code> and <code>v<\/code> must belong to different sets.\n<\/p>\n<h2>Input<\/h2>\n<ul>\n<li>Integer <code>n<\/code> (1 \u2264 <code>n<\/code> \u2264 1000): number of vertices<\/li>\n<li>Integer <code>m<\/code> (1 \u2264 <code>m<\/code> \u2264 5000): number of edges<\/li>\n<li><code>m<\/code> pairs <code>(u, v)<\/code>: edge information between vertex <code>u<\/code> and vertex <code>v<\/code><\/li>\n<\/ul>\n<h2>Output<\/h2>\n<p>\n    Print <code>YES<\/code> if the graph is a bipartite graph, otherwise print <code>NO<\/code>.\n<\/p>\n<h2>Problem Solving Process<\/h2>\n<p>\n    To determine if a graph is bipartite, we can use DFS (Depth First Search) or BFS (Breadth First Search) algorithms. We proceed by coloring the vertices of the graph with two colors, and if adjacent vertices are colored the same, it is not a bipartite graph.\n<\/p>\n<h3>Step 1: Graph Representation<\/h3>\n<p>\n    The graph is represented using an adjacency list. We use <code>ArrayList<\/code> to store the connectivity between vertices.\n<\/p>\n<h3>Step 2: Graph Traversal<\/h3>\n<p>\n    While traversing the graph using DFS or BFS, we determine the color of each vertex and check its adjacent vertices to determine if it is a bipartite graph.\n<\/p>\n<h3>Step 3: Implementation<\/h3>\n<p>\n    Below is the implementation in Kotlin.\n<\/p>\n<pre>\n<code>\nfun isBipartiteGraph(n: Int, edges: List<pair<int, int=\"\">&gt;): String {\n    val graph = Array(n + 1) { mutableListOf<int>() }\n    for (edge in edges) {\n        graph[edge.first].add(edge.second)\n        graph[edge.second].add(edge.first)\n    }\n\n    val color = IntArray(n + 1) { -1 } \/\/ -1: unvisited, 0: set0, 1: set1\n\n    fun bfs(start: Int): Boolean {\n        val queue: Queue<int> = LinkedList()\n        queue.add(start)\n        color[start] = 0 \/\/ Coloring the starting vertex with set0\n\n        while (queue.isNotEmpty()) {\n            val node = queue.poll()\n            for (neighbor in graph[node]) {\n                if (color[neighbor] == -1) { \/\/ Unvisited vertex\n                    color[neighbor] = 1 - color[node] \/\/ Color with the opposite color of the current vertex\n                    queue.add(neighbor)\n                } else if (color[neighbor] == color[node]) {\n                    return false \/\/ If adjacent vertices have the same color\n                }\n            }\n        }\n        return true\n    }\n\n    for (i in 1..n) {\n        if (color[i] == -1) { \/\/ If unvisited vertex, start BFS\n            if (!bfs(i)) {\n                return \"NO\"\n            }\n        }\n    }\n    return \"YES\"\n}\n\n\/\/ Example usage\nfun main() {\n    val n = 5 \/\/ Number of vertices\n    val edges = listOf(Pair(1, 2), Pair(1, 3), Pair(2, 4), Pair(3, 5)) \/\/ Edge information\n    println(isBipartiteGraph(n, edges)) \/\/ Output: YES\n}\n<\/int><\/int><\/pair<int,><\/code>\n<\/pre>\n<h3>Step 4: Results and Validation<\/h3>\n<p>\n    By running the above code, you can determine whether the graph is a bipartite graph. Test various graphs to validate that it produces the correct results.\n<\/p>\n<h2>Conclusion<\/h2>\n<p>\n    Through this course, we understood the concept of bipartite graphs and how to determine them, and learned how to effectively solve this problem using Kotlin programming.\n<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description This is a problem to determine whether the given graph is a bipartite graph. A bipartite graph is a graph that can be divided into two sets of vertices such that there are no edges between vertices of the same set. In other words, if two vertices u and v are connected, u &hellip; <a href=\"https:\/\/atmokpo.com\/w\/35096\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin coding test course, determining if a graph is bipartite&#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":[106],"tags":[],"class_list":["post-35096","post","type-post","status-publish","format-standard","hentry","category----en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kotlin coding test course, determining if a graph is bipartite - \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\/35096\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kotlin coding test course, determining if a graph is bipartite - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description This is a problem to determine whether the given graph is a bipartite graph. A bipartite graph is a graph that can be divided into two sets of vertices such that there are no edges between vertices of the same set. In other words, if two vertices u and v are connected, u &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin coding test course, determining if a graph is bipartite&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/35096\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:35:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T12:45:06+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=\"1\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/35096\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35096\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin coding test course, determining if a graph is bipartite\",\"datePublished\":\"2024-11-01T09:35:26+00:00\",\"dateModified\":\"2024-11-01T12:45:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35096\/\"},\"wordCount\":259,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/35096\/\",\"url\":\"https:\/\/atmokpo.com\/w\/35096\/\",\"name\":\"Kotlin coding test course, determining if a graph is bipartite - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:35:26+00:00\",\"dateModified\":\"2024-11-01T12:45:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35096\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/35096\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/35096\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin coding test course, determining if a graph is bipartite\"}]},{\"@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":"Kotlin coding test course, determining if a graph is bipartite - \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\/35096\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin coding test course, determining if a graph is bipartite - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description This is a problem to determine whether the given graph is a bipartite graph. A bipartite graph is a graph that can be divided into two sets of vertices such that there are no edges between vertices of the same set. In other words, if two vertices u and v are connected, u &hellip; \ub354 \ubcf4\uae30 \"Kotlin coding test course, determining if a graph is bipartite\"","og_url":"https:\/\/atmokpo.com\/w\/35096\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:35:26+00:00","article_modified_time":"2024-11-01T12:45:06+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":"1\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/35096\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/35096\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin coding test course, determining if a graph is bipartite","datePublished":"2024-11-01T09:35:26+00:00","dateModified":"2024-11-01T12:45:06+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/35096\/"},"wordCount":259,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/35096\/","url":"https:\/\/atmokpo.com\/w\/35096\/","name":"Kotlin coding test course, determining if a graph is bipartite - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:35:26+00:00","dateModified":"2024-11-01T12:45:06+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/35096\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/35096\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/35096\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin coding test course, determining if a graph is bipartite"}]},{"@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\/35096","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=35096"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35096\/revisions"}],"predecessor-version":[{"id":38087,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35096\/revisions\/38087"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=35096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=35096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=35096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}