{"id":34244,"date":"2024-11-01T09:25:57","date_gmt":"2024-11-01T09:25:57","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34244"},"modified":"2024-11-01T10:58:01","modified_gmt":"2024-11-01T10:58:01","slug":"c-coding-test-course-creating-ascending-sequences-with-stacks","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34244\/","title":{"rendered":"C++ Coding Test Course, Creating Ascending Sequences with Stacks"},"content":{"rendered":"<article>\n<header>\n<p>Hello! Today, we will conduct a coding test problem-solving course using C++. In this course, we will explore a problem of arranging given numbers in ascending order using a data structure known as a stack. The stack follows a LIFO (Last In First Out) structure, and we will investigate how to create a sequence that meets specific requirements using this property.<\/p>\n<\/header>\n<section>\n<h2>Problem Description<\/h2>\n<p>You need to sort the numbers of a given sequence in ascending order using a stack. Every time a specific number comes in, you must examine the current state of the stack and, if possible, create an ascending sequence. If it is impossible, an appropriate message should be displayed.<\/p>\n<h3>Input<\/h3>\n<ul>\n<li>The first line contains an integer N (1 \u2264 N \u2264 100,000). (N is the number of integers in the sequence)<\/li>\n<li>The second line contains N integers, i.e., the sequence. (1 \u2264 each integer in the sequence \u2264 1,000,000)<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<ul>\n<li>If the sequence can be made in ascending order, print &#8216;YES&#8217;.<\/li>\n<li>If the sequence cannot be made in ascending order, print &#8216;NO&#8217;.<\/li>\n<\/ul>\n<h3>Example Input<\/h3>\n<pre>\n        5\n        4 3 6 8 5\n        <\/pre>\n<h3>Example Output<\/h3>\n<pre>\n        NO\n        <\/pre>\n<\/section>\n<section>\n<h2>Solution Process<\/h2>\n<p>To solve this problem, we need to effectively utilize the main properties of a stack. We will read the numbers from the left in order and push them into the stack, checking whether the top number of the stack matches the number we need to sort currently. Below is a step-by-step explanation of this process.<\/p>\n<h3>Step 1: Input Processing<\/h3>\n<p>First, we read the number of input numbers and receive the sequence accordingly. We plan to push this sequence into the stack in order.<\/p>\n<h3>Step 2: Sequence Manipulation Using Stack<\/h3>\n<p>Every time a number is input, we need to perform two tasks.<\/p>\n<ul>\n<li>Push the current number onto the stack.<\/li>\n<li>If the top number of the stack is the next number in our target ascending sequence, pop it from the stack and output it as a result.<\/li>\n<\/ul>\n<h3>Step 3: Handling Impossible Cases<\/h3>\n<p>If we processed all the input sequence but were unable to output the entire target sequence, print &#8216;NO&#8217; and terminate the process.<\/p>\n<h3>Step 4: Code Implementation<\/h3>\n<p>Now, let&#8217;s implement this process in C++ code.<\/p>\n<pre><code>\n#include &lt;iostream&gt;\n#include &lt;stack&gt;\n#include &lt;vector&gt;\n\nusing namespace std;\n\nint main() {\n    int N;\n    cin &gt;&gt; N;\n\n    vector<int> sequence(N);\n    for (int i = 0; i &lt; N; i++) {\n        cin &gt;&gt; sequence[i];\n    }\n\n    stack<int> s;\n    vector<int> result;\n\n    int next = 1; \/\/ The number to be sorted in ascending order\n    for (int i = 0; i &lt; N; i++) {\n        s.push(sequence[i]); \/\/ Push the current number onto the stack.\n\n        \/\/ Check if the top of the stack matches next.\n        while (!s.empty() &amp;&amp; s.top() == next) {\n            result.push_back(s.top()); \/\/ Add the top element of the stack to the result.\n            s.pop(); \/\/ Pop the top from the stack.\n            next++; \/\/ Proceed to the next number.\n        }\n    }\n\n    \/\/ Check if all numbers have been sorted.\n    if (result.size() == N) {\n        cout &lt;&lt; \"YES\" &lt;&lt; endl; \/\/ Successfully created an ascending sequence.\n    } else {\n        cout &lt;&lt; \"NO\" &lt;&lt; endl; \/\/ Failed.\n    }\n\n    return 0;\n}\n        <\/int><\/int><\/int><\/code><\/pre>\n<h2>Conclusion<\/h2>\n<p>In this course, we learned how to sort given numbers in ascending order using a stack. By leveraging the characteristics of the stack, we could manipulate numbers in real-time and check if the conditions were satisfied. Understanding data structures is crucial in coding test problems, so I encourage you to build your skills through various problems in the future.<\/p>\n<h2>Further Progress<\/h2>\n<p>There are various problems that utilize stacks. Next time, we will tackle problems using queues or other data structures. Thank you for your interest!<\/p>\n<\/section>\n<footer>\n<p>Thank you for attending the course! I hope this was helpful for improving your coding skills.<\/p>\n<\/footer>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>Hello! Today, we will conduct a coding test problem-solving course using C++. In this course, we will explore a problem of arranging given numbers in ascending order using a data structure known as a stack. The stack follows a LIFO (Last In First Out) structure, and we will investigate how to create a sequence that &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34244\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C++ Coding Test Course, Creating Ascending Sequences with Stacks&#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-34244","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, Creating Ascending Sequences with Stacks - \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\/34244\/\" \/>\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, Creating Ascending Sequences with Stacks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! Today, we will conduct a coding test problem-solving course using C++. In this course, we will explore a problem of arranging given numbers in ascending order using a data structure known as a stack. The stack follows a LIFO (Last In First Out) structure, and we will investigate how to create a sequence that &hellip; \ub354 \ubcf4\uae30 &quot;C++ Coding Test Course, Creating Ascending Sequences with Stacks&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34244\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:25:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:58:01+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\/34244\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34244\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C++ Coding Test Course, Creating Ascending Sequences with Stacks\",\"datePublished\":\"2024-11-01T09:25:57+00:00\",\"dateModified\":\"2024-11-01T10:58:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34244\/\"},\"wordCount\":456,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C++ Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34244\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34244\/\",\"name\":\"C++ Coding Test Course, Creating Ascending Sequences with Stacks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:25:57+00:00\",\"dateModified\":\"2024-11-01T10:58:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34244\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34244\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34244\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Coding Test Course, Creating Ascending Sequences with Stacks\"}]},{\"@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, Creating Ascending Sequences with Stacks - \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\/34244\/","og_locale":"ko_KR","og_type":"article","og_title":"C++ Coding Test Course, Creating Ascending Sequences with Stacks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! Today, we will conduct a coding test problem-solving course using C++. In this course, we will explore a problem of arranging given numbers in ascending order using a data structure known as a stack. The stack follows a LIFO (Last In First Out) structure, and we will investigate how to create a sequence that &hellip; \ub354 \ubcf4\uae30 \"C++ Coding Test Course, Creating Ascending Sequences with Stacks\"","og_url":"https:\/\/atmokpo.com\/w\/34244\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:25:57+00:00","article_modified_time":"2024-11-01T10:58:01+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\/34244\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34244\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C++ Coding Test Course, Creating Ascending Sequences with Stacks","datePublished":"2024-11-01T09:25:57+00:00","dateModified":"2024-11-01T10:58:01+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34244\/"},"wordCount":456,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C++ Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34244\/","url":"https:\/\/atmokpo.com\/w\/34244\/","name":"C++ Coding Test Course, Creating Ascending Sequences with Stacks - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:25:57+00:00","dateModified":"2024-11-01T10:58:01+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34244\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34244\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34244\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C++ Coding Test Course, Creating Ascending Sequences with Stacks"}]},{"@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\/34244","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=34244"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34244\/revisions"}],"predecessor-version":[{"id":34245,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34244\/revisions\/34245"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}