{"id":34266,"date":"2024-11-01T09:26:12","date_gmt":"2024-11-01T09:26:12","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34266"},"modified":"2024-11-01T10:57:55","modified_gmt":"2024-11-01T10:57:55","slug":"c-coding-test-course-finding-the-largest-number","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34266\/","title":{"rendered":"C++ Coding Test Course, Finding the Largest Number"},"content":{"rendered":"<p><body><\/p>\n<p>In this course, we will solve the problem of &#8220;Finding the Next Greater Element&#8221; using C++. This problem involves finding the nearest larger number to the right of each element in the given sequence. Through this, we will learn about problem-solving techniques using stacks and efficient algorithm design.<\/p>\n<h2>Problem Description<\/h2>\n<p>For each element in the given integer array, find the nearest position to the right that has a number larger than that element and output that number. If no such number exists, output -1.<\/p>\n<h3>Input<\/h3>\n<ul>\n<li>The first line contains the size of the array N (1 \u2264 N \u2264 1,000,000)<\/li>\n<li>The second line contains an array A consisting of N integers (0 \u2264 A[i] \u2264 1,000,000)<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<ul>\n<li>Output an array B consisting of N integers, where B[i] is the closest larger number to the right of A[i]. If no such number exists, output -1.<\/li>\n<\/ul>\n<h3>Example Input<\/h3>\n<pre><code>\n5\n2 1 2 4 3\n<\/code><\/pre>\n<h3>Example Output<\/h3>\n<pre><code>\n4 2 4 -1 -1\n<\/code><\/pre>\n<h2>Approach to the Problem<\/h2>\n<p>The most efficient way to solve this problem is to use a stack data structure. Starting from the end of the array, we traverse each element and perform the following steps.<\/p>\n<ol>\n<li>If the stack is not empty and the current element is greater than the top element of the stack, pop elements from the stack. The popped element at this point becomes the next greater element for the current element.<\/li>\n<li>Store the index of the current element and its next greater value in the array.<\/li>\n<li>Push the current element onto the stack.<\/li>\n<\/ol>\n<p>By repeating this process until the beginning of the array, we can find the next greater element for all elements.<\/p>\n<h2>Time Complexity<\/h2>\n<p>The time complexity of this algorithm is O(N). Each element is pushed to and popped from the stack exactly once, so even if we visit all elements, the number of elements in the stack does not exceed N.<\/p>\n<h2>Implementation<\/h2>\n<p>Now let&#8217;s implement the above algorithm in C++.<\/p>\n<div class=\"code-block\">\n<pre><code>\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;stack&gt;\nusing namespace std;\n\nvoid findNextGreaterElement(const vector&lt;int&gt;&amp; arr, vector&lt;int&gt;&amp; result) {\n    stack&lt;int&gt; s; \/\/ Stack declaration\n\n    for (int i = arr.size() - 1; i &gt;= 0; --i) {\n        \/\/ Remove elements from the stack that are less than or equal to the current element\n        while (!s.empty() &amp;&amp; s.top() &lt;= arr[i]) {\n            s.pop();\n        }\n        \/\/ If the stack is empty, the next greater element is -1\n        if (s.empty()) {\n            result[i] = -1;\n        } else {\n            result[i] = s.top(); \/\/ The top element of the stack is the next greater element\n        }\n        s.push(arr[i]); \/\/ Add the current element to the stack\n    }\n}\n\nint main() {\n    int N;\n    cout &lt;&lt; \"Enter the size of the array: \";\n    cin &gt;&gt; N;\n\n    vector&lt;int&gt; arr(N);\n    cout &lt;&lt; \"Enter the array elements: \";\n    for (int i = 0; i &lt; N; ++i) {\n        cin &gt;&gt; arr[i];\n    }\n\n    vector&lt;int&gt; result(N);\n    findNextGreaterElement(arr, result);\n\n    cout &lt;&lt; \"Next greater elements: \";\n    for (int i = 0; i &lt; N; ++i) {\n        cout &lt;&lt; result[i] &lt;&lt; \" \";\n    }\n    cout &lt;&lt; endl;\n\n    return 0;\n}\n<\/code><\/pre>\n<\/div>\n<h2>Code Explanation<\/h2>\n<p>The above code is a C++ program to solve the &#8220;Finding the Next Greater Element&#8221; problem. Here is an explanation of each part.<\/p>\n<ul>\n<li><strong>Including Header Files:<\/strong> Includes <code>iostream<\/code>, <code>vector<\/code>, and <code>stack<\/code> libraries to enable input\/output, vector usage, and stack usage.<\/li>\n<li><strong>findNextGreaterElement function:<\/strong> This function takes the input array and a vector to store results, which contains the core logic for finding the next greater elements.<\/li>\n<li><strong>main function:<\/strong> The entry point of the program, where it receives the size and elements of the array from the user, calculates the next greater elements, and prints the results.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>In this course, we learned how to efficiently solve the &#8220;Finding the Next Greater Element&#8221; problem using C++. Through the process of finding the next greater element for each element in the array using a stack, we gained an appreciation for the properties of stacks and the efficiency of the algorithm. Ability to utilize such data structures and algorithms is crucial in coding interviews.<\/p>\n<p>As this problem frequently appears in coding tests, it is vital to consider various modified versions of it and to develop problem-solving skills using stacks. Moving forward, engaging with similar problems will allow you to learn various algorithms and data structures.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this course, we will solve the problem of &#8220;Finding the Next Greater Element&#8221; using C++. This problem involves finding the nearest larger number to the right of each element in the given sequence. Through this, we will learn about problem-solving techniques using stacks and efficient algorithm design. Problem Description For each element in the &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34266\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C++ Coding Test Course, Finding the Largest 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":[111],"tags":[],"class_list":["post-34266","post","type-post","status-publish","format-standard","hentry","category-c-coding-test-tutorials-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++ Coding Test Course, Finding the Largest 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\/34266\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ Coding Test Course, Finding the Largest Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In this course, we will solve the problem of &#8220;Finding the Next Greater Element&#8221; using C++. This problem involves finding the nearest larger number to the right of each element in the given sequence. Through this, we will learn about problem-solving techniques using stacks and efficient algorithm design. Problem Description For each element in the &hellip; \ub354 \ubcf4\uae30 &quot;C++ Coding Test Course, Finding the Largest Number&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34266\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:26:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:57:55+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=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34266\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34266\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C++ Coding Test Course, Finding the Largest Number\",\"datePublished\":\"2024-11-01T09:26:12+00:00\",\"dateModified\":\"2024-11-01T10:57:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34266\/\"},\"wordCount\":519,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C++ Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34266\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34266\/\",\"name\":\"C++ Coding Test Course, Finding the Largest Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:26:12+00:00\",\"dateModified\":\"2024-11-01T10:57:55+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34266\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34266\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34266\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Coding Test Course, Finding the Largest 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":"C++ Coding Test Course, Finding the Largest 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\/34266\/","og_locale":"ko_KR","og_type":"article","og_title":"C++ Coding Test Course, Finding the Largest Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In this course, we will solve the problem of &#8220;Finding the Next Greater Element&#8221; using C++. This problem involves finding the nearest larger number to the right of each element in the given sequence. Through this, we will learn about problem-solving techniques using stacks and efficient algorithm design. Problem Description For each element in the &hellip; \ub354 \ubcf4\uae30 \"C++ Coding Test Course, Finding the Largest Number\"","og_url":"https:\/\/atmokpo.com\/w\/34266\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:26:12+00:00","article_modified_time":"2024-11-01T10:57:55+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":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34266\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34266\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C++ Coding Test Course, Finding the Largest Number","datePublished":"2024-11-01T09:26:12+00:00","dateModified":"2024-11-01T10:57:55+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34266\/"},"wordCount":519,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C++ Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34266\/","url":"https:\/\/atmokpo.com\/w\/34266\/","name":"C++ Coding Test Course, Finding the Largest Number - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:26:12+00:00","dateModified":"2024-11-01T10:57:55+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34266\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34266\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34266\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C++ Coding Test Course, Finding the Largest 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\/34266","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=34266"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34266\/revisions"}],"predecessor-version":[{"id":34267,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34266\/revisions\/34267"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}