{"id":35124,"date":"2024-11-01T09:35:47","date_gmt":"2024-11-01T09:35:47","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=35124"},"modified":"2024-11-01T12:41:50","modified_gmt":"2024-11-01T12:41:50","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%a7%91%ed%95%a9-%ed%91%9c%ed%98%84%ed%95%98%ea%b8%b0-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/35124\/","title":{"rendered":"Kotlin coding test course, representing sets"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this session, we will cover the topic of set expressions, which frequently appear in coding tests using <strong>Kotlin<\/strong>. Through the problems I present, I will clarify the concept of sets and explain how sets can be utilized in Kotlin.<\/p>\n<h2>Problem Description<\/h2>\n<p>Here is the description of the problem:<\/p>\n<blockquote>\n<p>When a set of integers is given, write a function that finds all subsets of that set and returns the number of unique sums of each subset. (The sum of subsets does not allow duplicates)<\/p>\n<p><strong>Input:<\/strong> A set of integers {a1, a2, &#8230;, an} (1 \u2264 n \u2264 20, 1 \u2264 a \u2264 100)<\/p>\n<p><strong>Output:<\/strong> The number of unique sums<\/p>\n<\/blockquote>\n<h2>Input Example<\/h2>\n<blockquote>\n<p>Input: {1, 2, 3}<\/p>\n<p>Output: 7<\/p>\n<\/blockquote>\n<h2>Problem Analysis<\/h2>\n<p>To understand this problem, one must first know the concepts of sets and subsets. A set is a collection of distinct objects where no duplicate objects are allowed. A subset is a set that includes some or all elements of the given set.<\/p>\n<p>For example, all subsets of the set {1, 2, 3} are as follows:<\/p>\n<ul>\n<li>{}<\/li>\n<li>{1}<\/li>\n<li>{2}<\/li>\n<li>{3}<\/li>\n<li>{1, 2}<\/li>\n<li>{1, 3}<\/li>\n<li>{2, 3}<\/li>\n<li>{1, 2, 3}<\/li>\n<\/ul>\n<p>To solve this, we need to find the sum of each of these subsets and count the unique values of these sums. However, it is important to note that we should not count duplicate sums.<\/p>\n<h2>Solution Process<\/h2>\n<h3>Step 1: Creating Subsets<\/h3>\n<p>We can use a recursive approach to create subsets. Since each element can either be included or not included, binary flags can be used. We construct subsets using combinations of indices.<\/p>\n<h3>Step 2: Calculating the Sum of Subsets<\/h3>\n<p>Next, we calculate the sum of each created subset. To ensure that sums do not duplicate, we can use a <code>HashSet<\/code>.<\/p>\n<h3>Step 3: Returning the Count of Unique Sums<\/h3>\n<p>Finally, we return the count of the stored sums.<\/p>\n<h2>Code Implementation<\/h2>\n<p>Based on the above process, let&#8217;s write the code.<\/p>\n<pre><code>fun uniqueSubsetSums(nums: IntArray): Int {\n    val sums = mutableSetOf<int>()\n\n    fun backtrack(index: Int, currentSum: Int) {\n        if (index == nums.size) {\n            sums.add(currentSum)\n            return\n        }\n        \/\/ Include element\n        backtrack(index + 1, currentSum + nums[index])\n        \/\/ Exclude element\n        backtrack(index + 1, currentSum)\n    }\n\n    backtrack(0, 0)\n    return sums.size\n}\n\nfun main() {\n    val input = intArrayOf(1, 2, 3)\n    println(uniqueSubsetSums(input)) \/\/ Output: 7\n}\n<\/int><\/code><\/pre>\n<h3>Code Explanation<\/h3>\n<p>The above code works as follows:<\/p>\n<ol>\n<li>The <code>uniqueSubsetSums<\/code> function calculates the unique sums of all subsets of the input integer array <code>nums<\/code>.<\/li>\n<li>A set is created to store sums using <code>mutableSetOf<int>()<\/code>.<\/li>\n<li>The <code>backtrack<\/code> function is called recursively to handle two cases for each index: including or excluding the element.<\/li>\n<li>After iterating through all subsets, <code>sums.size<\/code> is returned to output the count of unique sums.<\/li>\n<\/ol>\n<h2>Conclusion<\/h2>\n<p>In this lesson, we looked at how to express sets using Kotlin and how to solve the problem to find the count of unique sums through subsets. I hope that encountering this type of problem, which often appears in coding tests, enhances your understanding of algorithms. I will continue to present various problems in the future. Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this session, we will cover the topic of set expressions, which frequently appear in coding tests using Kotlin. Through the problems I present, I will clarify the concept of sets and explain how sets can be utilized in Kotlin. Problem Description Here is the description of the problem: When a set of integers &hellip; <a href=\"https:\/\/atmokpo.com\/w\/35124\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin coding test course, representing sets&#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-35124","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, representing sets - \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\/35124\/\" \/>\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, representing sets - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this session, we will cover the topic of set expressions, which frequently appear in coding tests using Kotlin. Through the problems I present, I will clarify the concept of sets and explain how sets can be utilized in Kotlin. Problem Description Here is the description of the problem: When a set of integers &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin coding test course, representing sets&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/35124\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:35:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T12:41:50+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\/35124\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35124\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin coding test course, representing sets\",\"datePublished\":\"2024-11-01T09:35:47+00:00\",\"dateModified\":\"2024-11-01T12:41:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35124\/\"},\"wordCount\":411,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/35124\/\",\"url\":\"https:\/\/atmokpo.com\/w\/35124\/\",\"name\":\"Kotlin coding test course, representing sets - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:35:47+00:00\",\"dateModified\":\"2024-11-01T12:41:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35124\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/35124\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/35124\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin coding test course, representing sets\"}]},{\"@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, representing sets - \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\/35124\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin coding test course, representing sets - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this session, we will cover the topic of set expressions, which frequently appear in coding tests using Kotlin. Through the problems I present, I will clarify the concept of sets and explain how sets can be utilized in Kotlin. Problem Description Here is the description of the problem: When a set of integers &hellip; \ub354 \ubcf4\uae30 \"Kotlin coding test course, representing sets\"","og_url":"https:\/\/atmokpo.com\/w\/35124\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:35:47+00:00","article_modified_time":"2024-11-01T12:41:50+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\/35124\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/35124\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin coding test course, representing sets","datePublished":"2024-11-01T09:35:47+00:00","dateModified":"2024-11-01T12:41:50+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/35124\/"},"wordCount":411,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/35124\/","url":"https:\/\/atmokpo.com\/w\/35124\/","name":"Kotlin coding test course, representing sets - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:35:47+00:00","dateModified":"2024-11-01T12:41:50+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/35124\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/35124\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/35124\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin coding test course, representing sets"}]},{"@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\/35124","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=35124"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35124\/revisions"}],"predecessor-version":[{"id":38077,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35124\/revisions\/38077"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=35124"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=35124"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=35124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}