{"id":34044,"date":"2024-11-01T09:23:29","date_gmt":"2024-11-01T09:23:29","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34044"},"modified":"2024-11-01T10:53:52","modified_gmt":"2024-11-01T10:53:52","slug":"c-coding-test-course-calculating-the-amount-of-water","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34044\/","title":{"rendered":"C# Coding Test Course, Calculating the Amount of Water"},"content":{"rendered":"<p><body><\/p>\n<h2>Problem Description<\/h2>\n<p>\n        There is a tank that can hold water in a specific area. Each wall of the tank has a different height. When it rains, water will accumulate, and the problem is to determine how much water can be held between each wall.\n    <\/p>\n<h3>Input<\/h3>\n<p>\n        The first line contains an integer N (1 \u2264 N \u2264 100,000). N represents the number of walls.<br \/>\n        The second line contains N integers h_i (1 \u2264 h_i \u2264 1,000,000), which represent the height of each wall.\n    <\/p>\n<h3>Output<\/h3>\n<p>\n        Print the amount of water that can be held on one line.\n    <\/p>\n<h2>Example Problem<\/h2>\n<div class=\"example\">\n<strong>Example Input:<\/strong><br \/>\n        5<br \/>\n        0 1 0 2 1 0 1 3 2 1 2 1<br \/>\n<strong>Example Output:<\/strong><br \/>\n        6\n    <\/div>\n<h2>Problem Solving Process<\/h2>\n<p>\n        To solve this problem, we will use two arrays. One will store the maximum height of walls to the left of the current position, and the other will store the maximum height of walls to the right.\n    <\/p>\n<h3>1. Problem Analysis<\/h3>\n<p>\n        The amount of water that can be held at each position is the difference between the minimum of the maximum heights of the walls on the left and right, and the current wall height.<br \/>\n        For example, the amount of water at position i can be calculated as follows:<br \/>\n        <code>water[i] = max(0, min(left_max[i], right_max[i]) - height[i])<\/code><br \/>\n        where <code>left_max<\/code> represents the maximum height of walls to the left of i, and <code>right_max<\/code> represents the maximum height of walls to the right.\n    <\/p>\n<h3>2. Algorithm Design<\/h3>\n<p>\n        We can design the algorithm in the following steps:<\/p>\n<ol>\n<li>Receive the input.<\/li>\n<li>Create an array <code>left_max<\/code> to store the maximum heights of the left walls.<\/li>\n<li>Create an array <code>right_max<\/code> to store the maximum heights of the right walls.<\/li>\n<li>Calculate the amount of water that can be held at each position.<\/li>\n<li>Finally, output the total amount of water.<\/li>\n<\/ol>\n<h3>3. Code Implementation<\/h3>\n<p>\n        Below is the code that implements the above algorithm in C#.\n    <\/p>\n<pre><code>\nusing System;\n\nclass Program\n{\n    static void Main(string[] args)\n    {\n        int N = int.Parse(Console.ReadLine());\n        int[] height = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);\n\n        \/\/ Left maximum height array\n        int[] left_max = new int[N];\n        left_max[0] = height[0];\n\n        for (int i = 1; i &lt; N; i++)\n        {\n            left_max[i] = Math.Max(left_max[i - 1], height[i]);\n        }\n\n        \/\/ Right maximum height array\n        int[] right_max = new int[N];\n        right_max[N - 1] = height[N - 1];\n\n        for (int i = N - 2; i &gt;= 0; i--)\n        {\n            right_max[i] = Math.Max(right_max[i + 1], height[i]);\n        }\n\n        \/\/ Calculate the amount of water\n        int water = 0;\n        for (int i = 0; i &lt; N; i++)\n        {\n            water += Math.Max(0, Math.Min(left_max[i], right_max[i]) - height[i]);\n        }\n\n        Console.WriteLine(water);\n    }\n}\n    <\/code><\/pre>\n<h3>4. Code Explanation<\/h3>\n<p>\n        The algorithm used in the above C# code is as follows:<\/p>\n<ul>\n<li>\n<code>int N = int.Parse(Console.ReadLine());<\/code><br \/>\n                &#8211; Takes the input for N and stores the number of walls.\n            <\/li>\n<li>\n<code>int[] height = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);<\/code><br \/>\n                &#8211; Takes the height input and converts it into an array.\n            <\/li>\n<li>\n<code>left_max<\/code> array stores the maximum height from the left. To do this, after setting the height of the first wall, a loop is run to compare the height of each wall and store the maximum value.\n            <\/li>\n<li>\n<code>right_max<\/code> array does the same to store the maximum height from the right.\n            <\/li>\n<li>\n                Finally, the amount of water that can be held at each wall position is calculated to find the total amount of water.\n            <\/li>\n<\/ul>\n<h3>5. Complexity Analysis<\/h3>\n<p>\n        The time complexity of this algorithm is O(N). It performs operations proportional to the number of walls N, so it operates efficiently within the provided input range. The space complexity is also O(N) as it needs space to store the two arrays.\n    <\/p>\n<h2>Conclusion<\/h2>\n<p>\n        In this article, we solved the problem of calculating the amount of water using C#. Through the process of designing and implementing the algorithm step by step, we were able to confirm problem types that are frequently encountered in coding tests.<br \/>\n        I hope this lecture helps you in your preparation for coding tests.\n    <\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description There is a tank that can hold water in a specific area. Each wall of the tank has a different height. When it rains, water will accumulate, and the problem is to determine how much water can be held between each wall. Input The first line contains an integer N (1 \u2264 N &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34044\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C# Coding Test Course, Calculating the Amount of Water&#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":[90],"tags":[],"class_list":["post-34044","post","type-post","status-publish","format-standard","hentry","category-c-coding-test-tutorials"],"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, Calculating the Amount of Water - \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\/34044\/\" \/>\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, Calculating the Amount of Water - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description There is a tank that can hold water in a specific area. Each wall of the tank has a different height. When it rains, water will accumulate, and the problem is to determine how much water can be held between each wall. Input The first line contains an integer N (1 \u2264 N &hellip; \ub354 \ubcf4\uae30 &quot;C# Coding Test Course, Calculating the Amount of Water&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34044\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:23:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:53:52+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\/34044\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34044\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C# Coding Test Course, Calculating the Amount of Water\",\"datePublished\":\"2024-11-01T09:23:29+00:00\",\"dateModified\":\"2024-11-01T10:53:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34044\/\"},\"wordCount\":491,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C# Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34044\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34044\/\",\"name\":\"C# Coding Test Course, Calculating the Amount of Water - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:23:29+00:00\",\"dateModified\":\"2024-11-01T10:53:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34044\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34044\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34044\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Coding Test Course, Calculating the Amount of Water\"}]},{\"@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, Calculating the Amount of Water - \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\/34044\/","og_locale":"ko_KR","og_type":"article","og_title":"C# Coding Test Course, Calculating the Amount of Water - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description There is a tank that can hold water in a specific area. Each wall of the tank has a different height. When it rains, water will accumulate, and the problem is to determine how much water can be held between each wall. Input The first line contains an integer N (1 \u2264 N &hellip; \ub354 \ubcf4\uae30 \"C# Coding Test Course, Calculating the Amount of Water\"","og_url":"https:\/\/atmokpo.com\/w\/34044\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:23:29+00:00","article_modified_time":"2024-11-01T10:53:52+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\/34044\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34044\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C# Coding Test Course, Calculating the Amount of Water","datePublished":"2024-11-01T09:23:29+00:00","dateModified":"2024-11-01T10:53:52+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34044\/"},"wordCount":491,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C# Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34044\/","url":"https:\/\/atmokpo.com\/w\/34044\/","name":"C# Coding Test Course, Calculating the Amount of Water - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:23:29+00:00","dateModified":"2024-11-01T10:53:52+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34044\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34044\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34044\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C# Coding Test Course, Calculating the Amount of Water"}]},{"@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\/34044","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=34044"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34044\/revisions"}],"predecessor-version":[{"id":34045,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34044\/revisions\/34045"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}