{"id":34824,"date":"2024-11-01T09:32:25","date_gmt":"2024-11-01T09:32:25","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34824"},"modified":"2024-11-01T11:26:22","modified_gmt":"2024-11-01T11:26:22","slug":"swift-coding-test-course-binary-tree","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34824\/","title":{"rendered":"Swift Coding Test Course, Binary Tree"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! Today, we will solve a coding test problem related to binary trees. Binary trees are a data structure that appears frequently in many problems. A binary tree is a tree structure where each node can have a maximum of two children, allowing for various traversal methods. Our goal is to understand binary trees and utilize them to solve specific problems.<\/p>\n<h2>Problem Description<\/h2>\n<p>Given the following binary tree, write a function that traverses all nodes using DFS (Depth-First Search) and returns the values of the nodes as a list.<\/p>\n<h3>Problem Definition<\/h3>\n<pre><code>func depthFirstTraversal(root: TreeNode?) -&gt; [Int] {}<\/code><\/pre>\n<p><strong>Input:<\/strong> The root node of the binary tree, <code>root<\/code><\/p>\n<p><strong>Output:<\/strong> An integer array containing the values of the nodes from the DFS traversal<\/p>\n<h3>Example<\/h3>\n<h4>Input:<\/h4>\n<pre><code>\n        1\n       \/ \\\n      2   3\n     \/ \\\n    4   5\n    <\/code><\/pre>\n<h4>Output:<\/h4>\n<pre><code>[1, 2, 4, 5, 3]<\/code><\/pre>\n<h2>Definition of Binary Tree<\/h2>\n<p>A binary tree is a tree structure that can have two child nodes. Each node has a value, and binary trees are usually defined recursively. Since a node may be empty, the root node should be handled as <code>nil<\/code>.<\/p>\n<h2>Problem Solving Process<\/h2>\n<p>To solve this problem, we will explore the tree using the DFS method. DFS means Depth-First Search, which involves completely traversing one branch before moving on to the next. Below, we explain the process of tree traversal using DFS.<\/p>\n<h3>Step 1: Define Tree Node<\/h3>\n<p>First, we need to define a tree node. We will implement the <code>TreeNode<\/code> class to define a tree node.<\/p>\n<pre><code>\n    class TreeNode {\n        var value: Int\n        var left: TreeNode?\n        var right: TreeNode?\n        \n        init(value: Int) {\n            self.value = value\n        }\n    }\n    <\/code><\/pre>\n<h3>Step 2: Implement DFS Function<\/h3>\n<p>Now we will implement a function to traverse the binary tree using the DFS method. The priority is current node -&gt; left child -&gt; right child. We will perform this recursively.<\/p>\n<pre><code>\n    func depthFirstTraversal(root: TreeNode?) -&gt; [Int] {\n        guard let node = root else { return [] }\n        \n        \/\/ Add the current node's value to the array\n        var result = [node.value]\n        \n        \/\/ Explore the left subtree\n        result += depthFirstTraversal(root: node.left)\n        \n        \/\/ Explore the right subtree\n        result += depthFirstTraversal(root: node.right)\n        \n        return result\n    }\n    <\/code><\/pre>\n<h3>Step 3: Test and Validate<\/h3>\n<p>Now, we will create a binary tree to test the function we have implemented. We will use the example above to create the tree.<\/p>\n<pre><code>\n    let root = TreeNode(value: 1)\n    let leftChild = TreeNode(value: 2)\n    let rightChild = TreeNode(value: 3)\n    let leftLeftChild = TreeNode(value: 4)\n    let leftRightChild = TreeNode(value: 5)\n    \n    root.left = leftChild\n    root.right = rightChild\n    leftChild.left = leftLeftChild\n    leftChild.right = leftRightChild\n    \n    let result = depthFirstTraversal(root: root)\n    print(result)  \/\/ [1, 2, 4, 5, 3]\n    <\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>We have implemented a DFS algorithm to traverse binary trees. Through this problem, we were able to understand the structure of binary trees and the concept of DFS traversal. In Swift, trees can be easily traversed using recursion, and problems like this are common in coding tests, making it important to practice. In the next session, we will explore another algorithmic problem. Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! Today, we will solve a coding test problem related to binary trees. Binary trees are a data structure that appears frequently in many problems. A binary tree is a tree structure where each node can have a maximum of two children, allowing for various traversal methods. Our goal is to understand binary trees and &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34824\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Swift Coding Test Course, Binary 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":[129],"tags":[],"class_list":["post-34824","post","type-post","status-publish","format-standard","hentry","category-swift-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Swift Coding Test Course, Binary 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\/34824\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Swift Coding Test Course, Binary Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! Today, we will solve a coding test problem related to binary trees. Binary trees are a data structure that appears frequently in many problems. A binary tree is a tree structure where each node can have a maximum of two children, allowing for various traversal methods. Our goal is to understand binary trees and &hellip; \ub354 \ubcf4\uae30 &quot;Swift Coding Test Course, Binary Tree&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34824\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:32:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:26:22+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\/34824\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34824\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Swift Coding Test Course, Binary Tree\",\"datePublished\":\"2024-11-01T09:32:25+00:00\",\"dateModified\":\"2024-11-01T11:26:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34824\/\"},\"wordCount\":358,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Swift Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34824\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34824\/\",\"name\":\"Swift Coding Test Course, Binary Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:32:25+00:00\",\"dateModified\":\"2024-11-01T11:26:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34824\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34824\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34824\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Swift Coding Test Course, Binary 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":"Swift Coding Test Course, Binary 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\/34824\/","og_locale":"ko_KR","og_type":"article","og_title":"Swift Coding Test Course, Binary Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! Today, we will solve a coding test problem related to binary trees. Binary trees are a data structure that appears frequently in many problems. A binary tree is a tree structure where each node can have a maximum of two children, allowing for various traversal methods. Our goal is to understand binary trees and &hellip; \ub354 \ubcf4\uae30 \"Swift Coding Test Course, Binary Tree\"","og_url":"https:\/\/atmokpo.com\/w\/34824\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:32:25+00:00","article_modified_time":"2024-11-01T11:26:22+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\/34824\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34824\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Swift Coding Test Course, Binary Tree","datePublished":"2024-11-01T09:32:25+00:00","dateModified":"2024-11-01T11:26:22+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34824\/"},"wordCount":358,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Swift Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34824\/","url":"https:\/\/atmokpo.com\/w\/34824\/","name":"Swift Coding Test Course, Binary Tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:32:25+00:00","dateModified":"2024-11-01T11:26:22+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34824\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34824\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34824\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Swift Coding Test Course, Binary 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\/34824","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=34824"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34824\/revisions"}],"predecessor-version":[{"id":34825,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34824\/revisions\/34825"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}