{"id":35084,"date":"2024-11-01T09:35:21","date_gmt":"2024-11-01T09:35:21","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=35084"},"modified":"2024-11-01T12:45:47","modified_gmt":"2024-11-01T12:45:47","slug":"%ec%bd%94%ed%8b%80%eb%a6%b0-coding-test-course-finding-the-next-greater-number","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/35084\/","title":{"rendered":"Kotlin Coding Test Course, Finding the Next Greater Number"},"content":{"rendered":"<p><body><\/p>\n<p>One of the problems that frequently appears in programming and algorithm tests is the &#8216;Next Greater Element&#8217; problem. This problem requires an understanding of efficient algorithms and data structures, and it can be very useful in various real programming situations.<\/p>\n<h2>Problem Description<\/h2>\n<p><strong>Problem:<\/strong> For each number in a given integer array, find the next greater number that appears to the right, and output that number. If it does not exist, output -1.<\/p>\n<h3>Input Format<\/h3>\n<ul>\n<li>The first line contains a natural number N (1 \u2264 N \u2264 1,000,000).<\/li>\n<li>The second line contains an array of N integers. The values are from 1 to 1,000,000.<\/li>\n<\/ul>\n<h3>Output Format<\/h3>\n<p>Output an array consisting of N integers representing the next greater elements for each number.<\/p>\n<h2>Example<\/h2>\n<h3>Input<\/h3>\n<pre>\n    4\n    3 5 2 7\n    <\/pre>\n<h3>Output<\/h3>\n<pre>\n    5 7 -1 -1\n    <\/pre>\n<h2>How to Solve the Problem<\/h2>\n<p>To solve this problem, we will utilize the stack data structure. A stack is a LIFO (Last In, First Out) structure, which means that the last element added is the first one to be removed. By using this structure, we can efficiently find the next greater element for each element.<\/p>\n<h3>Algorithm Explanation<\/h3>\n<ol>\n<li>Create a stack. This stack will store indices.<\/li>\n<li>Traverse the given array.<\/li>\n<li>If the current number is greater than the number at the top of the stack, pop indices from the stack and store the current number as the next greater element at those indices.<\/li>\n<li>Add the current index to the stack.<\/li>\n<li>After repeating this process for all numbers, any remaining indices in the stack indicate there is no next greater element, so store -1 for those indices.<\/li>\n<\/ol>\n<h3>Kotlin Code Implementation<\/h3>\n<pre><code>\nfun findNextGreater(nums: IntArray): IntArray {\n    val result = IntArray(nums.size) { -1 }  \/\/ Initialize result array\n    val stack = mutableListOf<Int>()  \/\/ Create stack\n\n    for (i in nums.indices) {\n        \/\/ While stack is not empty and current number is greater than the top of the stack\n        while (stack.isNotEmpty() && nums[stack.last()] < nums[i]) {\n            result[stack.removeAt(stack.size - 1)] = nums[i]  \/\/ Store next greater element\n        }\n        stack.add(i)  \/\/ Add current index\n    }\n    \n    return result\n}\n\nfun main() {\n    val inputArray = intArrayOf(3, 5, 2, 7)\n    val result = findNextGreater(inputArray)\n\n    print(result.joinToString(\" \"))  \/\/ Print result\n}\n    <\/code><\/pre>\n<h2>Code Explanation<\/h2>\n<p>The code above is an implementation of the algorithm to find the next greater element in Kotlin. Let's examine the main parts.<\/p>\n<h3>1. Initializing the Result Array<\/h3>\n<p>The result array is intended to store the next greater elements. It is initialized to -1 by default. This is to handle cases where there is no next greater element.<\/p>\n<h3>2. Searching Using a Stack<\/h3>\n<p>When the top index of the stack points to a value that is less than the current index i, we pop that index and assign the current number to the result array at that index. This process helps us find the next greater element.<\/p>\n<h3>3. Final Result Output<\/h3>\n<p>After searching through all numbers, we output the final result array. The result is printed with the next greater elements for each number in the given array.<\/p>\n<h2>Performance Analysis<\/h2>\n<p>The time complexity of this method is O(N). It is efficient since each element is pushed and popped from the stack only once. The space complexity is O(N) because the stack and the result array are used, meaning the memory used is proportional to the input size.<\/p>\n<div class=\"note\">\n<strong>Tip:<\/strong> Through practicing this problem, you can gain a deeper understanding of how stacks operate and apply this knowledge to a variety of algorithmic problems. For example, try solving other problems similar to the 'Next Greater Element' problem!\n    <\/div>\n<h2>Conclusion<\/h2>\n<p>Today we learned how to solve the Next Greater Element problem using Kotlin. I hope you have felt the importance of data structures and algorithms, and I encourage you to continue practicing to enhance your algorithm problem-solving skills.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>One of the problems that frequently appears in programming and algorithm tests is the &#8216;Next Greater Element&#8217; problem. This problem requires an understanding of efficient algorithms and data structures, and it can be very useful in various real programming situations. Problem Description Problem: For each number in a given integer array, find the next greater &hellip; <a href=\"https:\/\/atmokpo.com\/w\/35084\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Kotlin Coding Test Course, Finding the Next Greater Number&#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-35084","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, Finding the Next Greater Number - \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\/35084\/\" \/>\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, Finding the Next Greater Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"One of the problems that frequently appears in programming and algorithm tests is the &#8216;Next Greater Element&#8217; problem. This problem requires an understanding of efficient algorithms and data structures, and it can be very useful in various real programming situations. Problem Description Problem: For each number in a given integer array, find the next greater &hellip; \ub354 \ubcf4\uae30 &quot;Kotlin Coding Test Course, Finding the Next Greater Number&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/35084\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:35:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T12:45:47+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\/35084\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35084\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Kotlin Coding Test Course, Finding the Next Greater Number\",\"datePublished\":\"2024-11-01T09:35:21+00:00\",\"dateModified\":\"2024-11-01T12:45:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35084\/\"},\"wordCount\":529,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/35084\/\",\"url\":\"https:\/\/atmokpo.com\/w\/35084\/\",\"name\":\"Kotlin Coding Test Course, Finding the Next Greater Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:35:21+00:00\",\"dateModified\":\"2024-11-01T12:45:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/35084\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/35084\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/35084\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kotlin Coding Test Course, Finding the Next Greater Number\"}]},{\"@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, Finding the Next Greater Number - \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\/35084\/","og_locale":"ko_KR","og_type":"article","og_title":"Kotlin Coding Test Course, Finding the Next Greater Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"One of the problems that frequently appears in programming and algorithm tests is the &#8216;Next Greater Element&#8217; problem. This problem requires an understanding of efficient algorithms and data structures, and it can be very useful in various real programming situations. Problem Description Problem: For each number in a given integer array, find the next greater &hellip; \ub354 \ubcf4\uae30 \"Kotlin Coding Test Course, Finding the Next Greater Number\"","og_url":"https:\/\/atmokpo.com\/w\/35084\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:35:21+00:00","article_modified_time":"2024-11-01T12:45:47+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\/35084\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/35084\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Kotlin Coding Test Course, Finding the Next Greater Number","datePublished":"2024-11-01T09:35:21+00:00","dateModified":"2024-11-01T12:45:47+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/35084\/"},"wordCount":529,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/35084\/","url":"https:\/\/atmokpo.com\/w\/35084\/","name":"Kotlin Coding Test Course, Finding the Next Greater Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:35:21+00:00","dateModified":"2024-11-01T12:45:47+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/35084\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/35084\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/35084\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Kotlin Coding Test Course, Finding the Next Greater Number"}]},{"@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\/35084","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=35084"}],"version-history":[{"count":2,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35084\/revisions"}],"predecessor-version":[{"id":38089,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/35084\/revisions\/38089"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=35084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=35084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=35084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}