{"id":35100,"date":"2024-11-01T09:35:30","date_gmt":"2024-11-01T09:35:30","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=35100"},"modified":"2024-11-01T12:44:09","modified_gmt":"2024-11-01T12:44:09","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%ec%a7%84-%ed%8a%b8%eb%a6%ac-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/35100\/","title":{"rendered":"Kotlin coding test course, binary tree"},"content":{"rendered":"<p>Hello, everyone! Today, we will explore binary trees and take some time to solve related problems. A binary tree is one of the fundamental structures in computer science and algorithms, and it is a topic that frequently appears in job coding tests. In this article, we will introduce the basic concepts of binary trees, present a problem using these concepts, and explain the process of solving the problem with Kotlin in detail.<\/p>\n<h2>Basic Concepts of Binary Trees<\/h2>\n<p>A binary tree is a tree structure where each node can have at most two children. Each node contains data and references to its child nodes. Binary trees are used for various purposes and play a significant role in tree traversal, sorting algorithms, and more.<\/p>\n<h3>Structure of Binary Trees<\/h3>\n<pre>\nclass TreeNode(val value: Int) {\n    var left: TreeNode? = null\n    var right: TreeNode? = null\n}\n<\/pre>\n<p>In the code above, the <code>TreeNode<\/code> class represents each node in a binary tree. The <code>value<\/code> is the value of the node, and <code>left<\/code> and <code>right<\/code> represent the left and right children, respectively.<\/p>\n<h2>Problem Statement<\/h2>\n<p>Now, I will present the problem we will solve. It is a problem of counting the number of paths in a given binary tree where the sum of nodes along each path equals a specified value.<\/p>\n<h3>Problem Description<\/h3>\n<p>Write a function to calculate the sum of paths from the root node of a given binary tree to each leaf node, and print the number of paths where this sum equals a given value.<\/p>\n<p><strong>Input:<\/strong><\/p>\n<ul>\n<li>The <code>root<\/code> representing the root node of the binary tree.<\/li>\n<li>An integer <code>sum<\/code>, the sum of the path you want to find.<\/li>\n<\/ul>\n<p><strong>Output:<\/strong><\/p>\n<ul>\n<li>The number of paths that match the given <code>sum<\/code>.<\/li>\n<\/ul>\n<h3>Example<\/h3>\n<pre>\nInput:\n        5\n       \/ \\\n      4   8\n     \/   \/ \\\n    11  13  4\n   \/  \\      \\\n  7    2      1\nsum = 22\n\nOutput:\n3\n<\/pre>\n<h2>Problem-Solving Process<\/h2>\n<p>To solve this problem, we will use the DFS (Depth-First Search) algorithm. DFS is a useful method for traversing trees, visiting nodes through recursive calls.<\/p>\n<h3>Problem-Solving Approach<\/h3>\n<ol>\n<li>Explore each path using DFS.<\/li>\n<li>Keep an accumulated sum as you visit each node.<\/li>\n<li>When you reach a leaf node, check if the accumulated sum equals <code>sum<\/code>.<\/li>\n<li>If they are equal, increase the count.<\/li>\n<\/ol>\n<h3>Kotlin Code<\/h3>\n<pre>\nfun pathSum(root: TreeNode?, sum: Int): Int {\n    return findPaths(root, sum, 0)\n}\n\nfun findPaths(node: TreeNode?, target: Int, currentSum: Int): Int {\n    if (node == null) {\n        return 0\n    }\n\n    val newSum = currentSum + node.value\n    var pathCount = 0\n\n    if (node.left == null && node.right == null && newSum == target) {\n        pathCount += 1\n    }\n\n    pathCount += findPaths(node.left, target, newSum)\n    pathCount += findPaths(node.right, target, newSum)\n\n    return pathCount\n}\n<\/pre>\n<h2>Code Explanation<\/h2>\n<p>The code above is a function that calculates the sum of paths in a given binary tree. The <code>pathSum<\/code> function takes the provided <code>root<\/code> and <code>sum<\/code> as input and returns the number of paths. The <code>findPaths<\/code> function recursively explores nodes and calculates the sum of paths. When reaching each leaf node, it checks if the accumulated sum is equal to <code>target<\/code>, and if it is, it increases the path count.<\/p>\n<h2>Test Cases<\/h2>\n<p>Now let&#8217;s test the function we have written. By applying various test cases, we will validate the algorithm&#8217;s accuracy.<\/p>\n<pre>\nfun main() {\n    \/\/ Sample test case\n    val root = TreeNode(5).apply {\n        left = TreeNode(4).apply {\n            left = TreeNode(11).apply {\n                left = TreeNode(7)\n                right = TreeNode(2)\n            }\n        }\n        right = TreeNode(8).apply {\n            left = TreeNode(13)\n            right = TreeNode(4).apply {\n                right = TreeNode(1)\n            }\n        }\n    }\n    \n    val sum = 22\n    val result = pathSum(root, sum)\n    println(\"Number of paths: $result\") \/\/ Output: Number of paths: 3\n}\n<\/pre>\n<h2>Conclusion<\/h2>\n<p>In this article, we solved an algorithm problem using binary trees. We learned how to calculate the sum of each path using DFS and explored specific code writing methods in Kotlin. Since binary trees are widely used as a fundamental data structure to solve various problems, it is beneficial to apply them to multiple problem scenarios.<\/p>\n<p>That concludes this tutorial. Let&#8217;s continue to improve our skills by solving more algorithm problems together!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello, everyone! Today, we will explore binary trees and take some time to solve related problems. A binary tree is one of the fundamental structures in computer science and algorithms, and it is a topic that frequently appears in job coding tests. In this article, we will introduce the basic concepts of binary trees, present &hellip; <a href=\"https:\/\/atmokpo.com\/w\/35100\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin 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":[106],"tags":[],"class_list":["post-35100","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, 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\/35100\/\" \/>\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, binary tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello, everyone! Today, we will explore binary trees and take some time to solve related problems. A binary tree is one of the fundamental structures in computer science and algorithms, and it is a topic that frequently appears in job coding tests. In this article, we will introduce the basic concepts of binary trees, present &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin coding test course, binary tree&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/35100\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:35:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T12:44:09+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=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/35100\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35100\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin coding test course, binary tree\",\"datePublished\":\"2024-11-01T09:35:30+00:00\",\"dateModified\":\"2024-11-01T12:44:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35100\/\"},\"wordCount\":495,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/35100\/\",\"url\":\"https:\/\/atmokpo.com\/w\/35100\/\",\"name\":\"Kotlin coding test course, binary tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:35:30+00:00\",\"dateModified\":\"2024-11-01T12:44:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35100\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/35100\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/35100\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin 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":"Kotlin 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\/35100\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin coding test course, binary tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello, everyone! Today, we will explore binary trees and take some time to solve related problems. A binary tree is one of the fundamental structures in computer science and algorithms, and it is a topic that frequently appears in job coding tests. In this article, we will introduce the basic concepts of binary trees, present &hellip; \ub354 \ubcf4\uae30 \"Kotlin coding test course, binary tree\"","og_url":"https:\/\/atmokpo.com\/w\/35100\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:35:30+00:00","article_modified_time":"2024-11-01T12:44:09+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":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/35100\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/35100\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin coding test course, binary tree","datePublished":"2024-11-01T09:35:30+00:00","dateModified":"2024-11-01T12:44:09+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/35100\/"},"wordCount":495,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/35100\/","url":"https:\/\/atmokpo.com\/w\/35100\/","name":"Kotlin coding test course, binary tree - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:35:30+00:00","dateModified":"2024-11-01T12:44:09+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/35100\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/35100\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/35100\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin 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\/35100","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=35100"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35100\/revisions"}],"predecessor-version":[{"id":38084,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35100\/revisions\/38084"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=35100"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=35100"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=35100"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}