{"id":34928,"date":"2024-11-01T09:33:44","date_gmt":"2024-11-01T09:33:44","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34928"},"modified":"2024-11-01T12:56:34","modified_gmt":"2024-11-01T12:56:34","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-dfs%ec%99%80-bfs-%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%a8-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34928\/","title":{"rendered":"Kotlin coding test course, DFS and BFS programs"},"content":{"rendered":"<p><body><\/p>\n<h2>Introduction<\/h2>\n<p>\n        Learning various algorithms while preparing for coding tests is very important. Among them,<br \/>\n        DFS (Depth-First Search) and BFS (Breadth-First Search) algorithms are effective for solving many problems.<br \/>\n        In this article, we will understand the concepts of DFS and BFS and learn how to prepare for actual coding tests through examples using these algorithms.\n    <\/p>\n<h2>Concepts of DFS and BFS<\/h2>\n<p>\n        DFS and BFS are algorithms for graph traversal, and the approaches of the two algorithms are different from each other.\n    <\/p>\n<h3>DFS (Depth-First Search)<\/h3>\n<p>\n        DFS is a depth-first search that explores as deeply as possible from one node before returning to the previous node<br \/>\n        to explore other nodes when no further exploration is possible. It is generally implemented using a stack structure.\n    <\/p>\n<h3>BFS (Breadth-First Search)<\/h3>\n<p>\n        BFS is a breadth-first search that explores all neighboring nodes of one node before moving on to explore nodes at the next depth.<br \/>\n        It is typically implemented using a queue structure.\n    <\/p>\n<h2>Problem Description<\/h2>\n<p>\n        Here is an example problem that can be solved using DFS and BFS.<br \/>\n        <strong>Problem:<\/strong> Determine whether two nodes in a given graph are connected.\n    <\/p>\n<h3>Input<\/h3>\n<ul>\n<li>Number of nodes N (1 \u2264 N \u2264 1000)<\/li>\n<li>Number of edges E (1 \u2264 E \u2264 10000)<\/li>\n<li>Pairs of two nodes representing each edge (A, B)<\/li>\n<li>Query Q (number of queries to check if two nodes are connected)<\/li>\n<li>For each query, two nodes X, Y to check for connectivity<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>\n        For each query, print &#8220;YES&#8221; if X and Y are connected, otherwise print &#8220;NO&#8221;.\n    <\/p>\n<h2>Problem Solving Process<\/h2>\n<h3>1. Graph Representation<\/h3>\n<p>\n       The graph can be represented in the form of an adjacency list. Connected nodes are added to the list to determine the existence or lack thereof.\n    <\/p>\n<h3>2. Implementing DFS<\/h3>\n<p>\n        We will implement DFS through recursive calls. A boolean array is used to check visited nodes, and we will explore<br \/>\n        starting from the given node until we reach the target node.\n    <\/p>\n<pre><code>\nfun dfs(graph: List<list<int>&gt;, visited: BooleanArray, current: Int, target: Int): Boolean {\n    if (current == target) return true\n    visited[current] = true\n\n    for (neighbor in graph[current]) {\n        if (!visited[neighbor]) {\n            if (dfs(graph, visited, neighbor, target)) return true\n        }\n    }\n    return false\n}\n    <\/list<int><\/code><\/pre>\n<h3>3. Implementing BFS<\/h3>\n<p>\n        BFS is implemented using a queue. We add the starting node to the queue, and for each node, we take it out of the queue one by one<br \/>\n        to visit all neighboring nodes and check if we reach the target node.\n    <\/p>\n<pre><code>\nfun bfs(graph: List<list<int>&gt;, start: Int, target: Int): Boolean {\n    val queue: Queue<int> = LinkedList()\n    val visited = BooleanArray(graph.size)\n    \n    queue.offer(start)\n    visited[start] = true\n\n    while (queue.isNotEmpty()) {\n        val current = queue.poll()\n        if (current == target) return true\n\n        for (neighbor in graph[current]) {\n            if (!visited[neighbor]) {\n                visited[neighbor] = true\n                queue.offer(neighbor)\n            }\n        }\n    }\n    return false\n}\n    <\/int><\/list<int><\/code><\/pre>\n<h3>4. Complete Code<\/h3>\n<p>\n        Now we will write the complete code that takes the input of the graph and determines connectivity using DFS and BFS.\n    <\/p>\n<pre><code>\nimport java.util.*\n\nfun main() {\n    val scanner = Scanner(System.`in`)\n    val n = scanner.nextInt()\n    val e = scanner.nextInt()\n\n    val graph = List(n) { mutableListOf<int>() }\n\n    for (i in 0 until e) {\n        val a = scanner.nextInt() - 1\n        val b = scanner.nextInt() - 1\n        graph[a].add(b)\n        graph[b].add(a)  \/\/ Undirected graph\n    }\n\n    val q = scanner.nextInt()\n    for (i in 0 until q) {\n        val x = scanner.nextInt() - 1\n        val y = scanner.nextInt() - 1\n\n        val visitedDFS = BooleanArray(n)\n        val visitedBFS = BooleanArray(n)\n\n        \/\/ DFS Check\n        val isConnectedDFS = dfs(graph, visitedDFS, x, y)\n        \/\/ BFS Check\n        val isConnectedBFS = bfs(graph, x, y)\n\n        println(\"Connected in DFS: ${if (isConnectedDFS) \"YES\" else \"NO\"}\")\n        println(\"Connected in BFS: ${if (isConnectedBFS) \"YES\" else \"NO\"}\")\n    }\n}\n    <\/int><\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>\n        DFS and BFS each have their strengths and weaknesses, and it is important to choose the right algorithm depending on the specific problem.<br \/>\n        I hope this tutorial helped you understand the two algorithms and will aid you in preparing for actual coding tests.\n    <\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Learning various algorithms while preparing for coding tests is very important. Among them, DFS (Depth-First Search) and BFS (Breadth-First Search) algorithms are effective for solving many problems. In this article, we will understand the concepts of DFS and BFS and learn how to prepare for actual coding tests through examples using these algorithms. Concepts &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34928\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin coding test course, DFS and BFS programs&#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-34928","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, DFS and BFS programs - \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\/34928\/\" \/>\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, DFS and BFS programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Introduction Learning various algorithms while preparing for coding tests is very important. Among them, DFS (Depth-First Search) and BFS (Breadth-First Search) algorithms are effective for solving many problems. In this article, we will understand the concepts of DFS and BFS and learn how to prepare for actual coding tests through examples using these algorithms. Concepts &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin coding test course, DFS and BFS programs&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34928\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:33:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T12:56:34+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\/34928\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34928\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin coding test course, DFS and BFS programs\",\"datePublished\":\"2024-11-01T09:33:44+00:00\",\"dateModified\":\"2024-11-01T12:56:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34928\/\"},\"wordCount\":420,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34928\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34928\/\",\"name\":\"Kotlin coding test course, DFS and BFS programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:33:44+00:00\",\"dateModified\":\"2024-11-01T12:56:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34928\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34928\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34928\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin coding test course, DFS and BFS programs\"}]},{\"@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, DFS and BFS programs - \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\/34928\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin coding test course, DFS and BFS programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Introduction Learning various algorithms while preparing for coding tests is very important. Among them, DFS (Depth-First Search) and BFS (Breadth-First Search) algorithms are effective for solving many problems. In this article, we will understand the concepts of DFS and BFS and learn how to prepare for actual coding tests through examples using these algorithms. Concepts &hellip; \ub354 \ubcf4\uae30 \"Kotlin coding test course, DFS and BFS programs\"","og_url":"https:\/\/atmokpo.com\/w\/34928\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:33:44+00:00","article_modified_time":"2024-11-01T12:56:34+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\/34928\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34928\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin coding test course, DFS and BFS programs","datePublished":"2024-11-01T09:33:44+00:00","dateModified":"2024-11-01T12:56:34+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34928\/"},"wordCount":420,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34928\/","url":"https:\/\/atmokpo.com\/w\/34928\/","name":"Kotlin coding test course, DFS and BFS programs - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:33:44+00:00","dateModified":"2024-11-01T12:56:34+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34928\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34928\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34928\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin coding test course, DFS and BFS programs"}]},{"@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\/34928","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=34928"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34928\/revisions"}],"predecessor-version":[{"id":38122,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34928\/revisions\/38122"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}