{"id":34628,"date":"2024-11-01T09:30:17","date_gmt":"2024-11-01T09:30:17","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34628"},"modified":"2024-11-01T11:40:26","modified_gmt":"2024-11-01T11:40:26","slug":"javascript-coding-test-course-calculating-interval-sum-1","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34628\/","title":{"rendered":"JavaScript Coding Test Course, Calculating Interval Sum 1"},"content":{"rendered":"<div class=\"post\">\n<p>Hello! Today we will tackle the problem of calculating the range sum using JavaScript. The range sum problem is very helpful in learning how to efficiently process data and manipulate arrays. This topic frequently appears in coding tests and algorithm problem-solving, so I encourage you to thoroughly understand it through this opportunity.<\/p>\n<h2>Problem Description<\/h2>\n<p>Implement a function <code>rangeSum(array, start, end)<\/code> that efficiently calculates the sum of a specific range in the given array. Here, <code>array<\/code> is an array of integers, and <code>start<\/code> and <code>end<\/code> represent the indices of the array. The sum of the range is defined as <code>array[start] + array[start + 1] + ... + array[end]<\/code>.<\/p>\n<h3>Input<\/h3>\n<ul>\n<li>1 \u2264 <code>array.length<\/code> \u2264 10<sup>5<\/sup><\/li>\n<li>-10<sup>9<\/sup> \u2264 <code>array[i]<\/code> \u2264 10<sup>9<\/sup><\/li>\n<li>0 \u2264 <code>start<\/code> \u2264 <code>end<\/code> <code>&lt;<\/code> <code>array.length<\/code><\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>Returns an integer that represents the sum of the range.<\/p>\n<h2>Example<\/h2>\n<pre><code>Input: rangeSum([1, 2, 3, 4, 5], 1, 3)\nOutput: 9 \/\/ 2 + 3 + 4 = 9<\/code><\/pre>\n<h2>Solution<\/h2>\n<p>To compute the range sum, it is essential to understand the array and the starting and ending indices of the range. The problem we need to solve is to sum all the numbers within a specified index range in the given array. However, as the size of the array may increase, it is important to use an efficient method.<\/p>\n<h3>Simple Loop Approach<\/h3>\n<p>The simplest and most intuitive way is to calculate the sum of the range directly using a loop within the given index range. The time complexity of this method is O(n).<\/p>\n<pre><code>function rangeSum(array, start, end) {\n        let sum = 0;\n        for (let i = start; i &lt;= end; i++) {\n            sum += array[i];\n        }\n        return sum;\n    }<\/code><\/pre>\n<p>The above code sums all the values in the range using the given array and start and end indices. However, this method is inefficient because it requires recalculating from the beginning every time the range changes.<\/p>\n<h3>More Efficient Method: Prefix Sum Array<\/h3>\n<p>One approach is to scan the array once and store the cumulative sum. This method consists of the following steps:<\/p>\n<ol>\n<li>Create a prefix sum array.<\/li>\n<li>Calculate the cumulative sum based on the original array.<\/li>\n<li>To find the range sum, simply calculate <code>sum[end] - sum[start - 1]<\/code>.<\/li>\n<\/ol>\n<p>The implementation code is as follows:<\/p>\n<pre><code>function rangeSum(array, start, end) {\n        const prefixSum = new Array(array.length).fill(0);\n        prefixSum[0] = array[0];\n        for (let i = 1; i &lt; array.length; i++) {\n            prefixSum[i] = prefixSum[i - 1] + array[i];\n        }\n        return start &gt; 0 ? prefixSum[end] - prefixSum[start - 1] : prefixSum[end];\n    }<\/code><\/pre>\n<p>This method goes through an initialization process with a time complexity of O(n), after which the range sum can be calculated in O(1). By scanning the array once to obtain the prefix sum, it operates very efficiently based on the number of ranges that need to be calculated afterwards.<\/p>\n<h2>Time Complexity<\/h2>\n<p>The time complexity for the simple loop approach, which is the first method, remains O(n) regardless of the size of the range. However, using the prefix sum method allows each range sum to be calculated in O(1) after the initial O(n) time complexity, thus becoming advantageous as the number of queries increases.<\/p>\n<h2>Conclusion<\/h2>\n<p>Today, we learned how to calculate the range sum using JavaScript. By learning to solve problems efficiently, you will develop the ability to overcome frequently encountered challenges in coding tests. Now, practice with different arrays and test them yourself!<\/p>\n<h2>References<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.mozilla.org\/ko\/docs\/Web\/JavaScript\/Guide\">MDN Web Docs &#8211; JavaScript Guide<\/a><\/li>\n<li><a href=\"https:\/\/leetcode.com\/problemset\/all\/\">LeetCode Problems<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hello! Today we will tackle the problem of calculating the range sum using JavaScript. The range sum problem is very helpful in learning how to efficiently process data and manipulate arrays. This topic frequently appears in coding tests and algorithm problem-solving, so I encourage you to thoroughly understand it through this opportunity. Problem Description Implement &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34628\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;JavaScript Coding Test Course, Calculating Interval Sum 1&#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":[141],"tags":[],"class_list":["post-34628","post","type-post","status-publish","format-standard","hentry","category-javascript-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JavaScript Coding Test Course, Calculating Interval Sum 1 - \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\/34628\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JavaScript Coding Test Course, Calculating Interval Sum 1 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! Today we will tackle the problem of calculating the range sum using JavaScript. The range sum problem is very helpful in learning how to efficiently process data and manipulate arrays. This topic frequently appears in coding tests and algorithm problem-solving, so I encourage you to thoroughly understand it through this opportunity. Problem Description Implement &hellip; \ub354 \ubcf4\uae30 &quot;JavaScript Coding Test Course, Calculating Interval Sum 1&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34628\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:30:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:40:26+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\/34628\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34628\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"JavaScript Coding Test Course, Calculating Interval Sum 1\",\"datePublished\":\"2024-11-01T09:30:17+00:00\",\"dateModified\":\"2024-11-01T11:40:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34628\/\"},\"wordCount\":452,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Javascript Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34628\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34628\/\",\"name\":\"JavaScript Coding Test Course, Calculating Interval Sum 1 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:30:17+00:00\",\"dateModified\":\"2024-11-01T11:40:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34628\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34628\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34628\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript Coding Test Course, Calculating Interval Sum 1\"}]},{\"@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":"JavaScript Coding Test Course, Calculating Interval Sum 1 - \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\/34628\/","og_locale":"ko_KR","og_type":"article","og_title":"JavaScript Coding Test Course, Calculating Interval Sum 1 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! Today we will tackle the problem of calculating the range sum using JavaScript. The range sum problem is very helpful in learning how to efficiently process data and manipulate arrays. This topic frequently appears in coding tests and algorithm problem-solving, so I encourage you to thoroughly understand it through this opportunity. Problem Description Implement &hellip; \ub354 \ubcf4\uae30 \"JavaScript Coding Test Course, Calculating Interval Sum 1\"","og_url":"https:\/\/atmokpo.com\/w\/34628\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:30:17+00:00","article_modified_time":"2024-11-01T11:40:26+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\/34628\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34628\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"JavaScript Coding Test Course, Calculating Interval Sum 1","datePublished":"2024-11-01T09:30:17+00:00","dateModified":"2024-11-01T11:40:26+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34628\/"},"wordCount":452,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Javascript Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34628\/","url":"https:\/\/atmokpo.com\/w\/34628\/","name":"JavaScript Coding Test Course, Calculating Interval Sum 1 - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:30:17+00:00","dateModified":"2024-11-01T11:40:26+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34628\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34628\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34628\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"JavaScript Coding Test Course, Calculating Interval Sum 1"}]},{"@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\/34628","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=34628"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34628\/revisions"}],"predecessor-version":[{"id":34629,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34628\/revisions\/34629"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34628"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34628"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}