{"id":34954,"date":"2024-11-01T09:33:58","date_gmt":"2024-11-01T09:33:58","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34954"},"modified":"2024-11-01T11:45:36","modified_gmt":"2024-11-01T11:45:36","slug":"kotlin-coding-test-course-interval-sum","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34954\/","title":{"rendered":"kotlin coding test course, interval sum"},"content":{"rendered":"<p><body><\/p>\n<article>\n<section>\n<h2>1. Introduction<\/h2>\n<p>\n                Hello. In this session, we will learn about how to efficiently calculate the interval sum in Kotlin.<br \/>\n                This is one of the problems frequently encountered in coding tests, where we need to find the sum over a specific interval of a given sequence.<br \/>\n                Through this process, we will discuss various methods to solve the interval sum problem and their respective time complexities.\n            <\/p>\n<\/section>\n<section>\n<h2>2. Problem Description<\/h2>\n<p>\n                Given a sequence <code>A<\/code> and a query <code>Q<\/code>, each query is given by two integers <code>L<\/code> and <code>R<\/code>.<br \/>\n                We need to quickly find the sum from <code>L<\/code> to <code>R<\/code>.\n            <\/p>\n<h3>Input<\/h3>\n<ul>\n<li>The first line contains the size of the sequence <code>N<\/code> and the number of queries <code>M<\/code>.<\/li>\n<li>The second line consists of <code>N<\/code> integers forming the sequence <code>A<\/code>.<\/li>\n<li>For the next <code>M<\/code> lines, <code>L<\/code> and <code>R<\/code> are given.<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>\n                Print the result for each query one line at a time.\n            <\/p>\n<h3>Constraints<\/h3>\n<ul>\n<li><code>1 \u2264 N \u2264 100,000<\/code><\/li>\n<li><code>1 \u2264 M \u2264 100,000<\/code><\/li>\n<li><code>-1,000,000,000 \u2264 A[i] \u2264 1,000,000,000<\/code><\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>3. Approach<\/h2>\n<p>\n                There are several ways to calculate the interval sum, but the basic approaches are as follows.\n            <\/p>\n<h3>3.1. Simple Iteration<\/h3>\n<p>\n                The most intuitive method is to directly calculate the sum in the defined range for each query. However, this method has a time complexity of O(N), and in the worst case, it becomes O(N * M) = O(10^10) when the maximum number of queries is 100,000, making it very inefficient.\n            <\/p>\n<h3>3.2. Cumulative Sum Array<\/h3>\n<p>\n                By using the following methodology, we can efficiently calculate the interval sum.<br \/>\n                <br \/>\n                A cumulative sum array is an array that pre-calculates the sum up to a specific position, which can be created in linear time O(N).<br \/>\n                This allows each query to be processed in O(1). Thus, the overall time complexity is O(N + M).\n            <\/p>\n<\/section>\n<section>\n<h2>4. Implementation<\/h2>\n<p>\n                Let&#8217;s implement the interval sum calculation algorithm using the cumulative sum array in Kotlin.\n            <\/p>\n<pre>\n<code>\nfun main() {\n    val reader = System.`in`.bufferedReader()\n    val (n, m) = reader.readLine().split(\" \").map { it.toInt() }\n\n    val array = reader.readLine().split(\" \").map { it.toInt() }.toIntArray()\n    val sumArray = IntArray(n + 1)\n\n    \/\/ Create cumulative sum array\n    for (i in 1..n) {\n        sumArray[i] = sumArray[i - 1] + array[i - 1]\n    }\n\n    val result = StringBuilder()\n    \/\/ Process queries\n    repeat(m) {\n        val (l, r) = reader.readLine().split(\" \").map { it.toInt() }\n        val sum = sumArray[r] - sumArray[l - 1]\n        result.append(sum).append(\"\\n\")\n    }\n\n    println(result)\n}\n<\/code>\n            <\/pre>\n<p>\n                The key point in the above implementation is that we can process each query in O(1) through <code>sumArray<\/code>.<br \/>\n                The sum of the interval [L, R] can be easily calculated as <code>sumArray[R] - sumArray[L-1]<\/code>.\n            <\/p>\n<\/section>\n<section>\n<h2>5. Time Complexity Analysis<\/h2>\n<p>\n                Analyzing the time complexity of this algorithm, we have:\n            <\/p>\n<ul>\n<li>Creating the cumulative sum array: O(N)<\/li>\n<li>Processing queries: O(M)<\/li>\n<li>Total time complexity: O(N + M)<\/li>\n<\/ul>\n<p>\n                Therefore, under the given constraints, we can efficiently calculate the interval sum.\n            <\/p>\n<\/section>\n<section>\n<h2>6. Example<\/h2>\n<h3>6.1. Input Example<\/h3>\n<pre>\n<code>\n5 3\n1 2 3 4 5\n1 3\n2 5\n1 5\n<\/code>\n            <\/pre>\n<h3>6.2. Output Example<\/h3>\n<pre>\n<code>\n6\n14\n15\n<\/code>\n            <\/pre>\n<p>\n                In the above example, the results of the queries given as input are that the sum from 1 to 3 is 6,<br \/>\n                the sum from 2 to 5 is 14, and the total sum from 1 to 5 is 15.\n            <\/p>\n<\/section>\n<section>\n<h2>7. Conclusion<\/h2>\n<p>\n                In this lecture, we explored various ways to calculate the interval sum and its precise implementation.<br \/>\n                In particular, we discussed in depth about how to efficiently compute the interval sum using the cumulative sum array.<br \/>\n                This algorithm can be effectively used in many coding test problems and practical applications. In the next session, we will explore more complex data structures and algorithms.\n            <\/p>\n<\/section>\n<\/article>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Introduction Hello. In this session, we will learn about how to efficiently calculate the interval sum in Kotlin. This is one of the problems frequently encountered in coding tests, where we need to find the sum over a specific interval of a given sequence. Through this process, we will discuss various methods to solve &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34954\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;kotlin coding test course, interval sum&#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-34954","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, interval sum - \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\/34954\/\" \/>\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, interval sum - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Introduction Hello. In this session, we will learn about how to efficiently calculate the interval sum in Kotlin. This is one of the problems frequently encountered in coding tests, where we need to find the sum over a specific interval of a given sequence. Through this process, we will discuss various methods to solve &hellip; \ub354 \ubcf4\uae30 &quot;kotlin coding test course, interval sum&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34954\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:33:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:45:36+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\/34954\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34954\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"kotlin coding test course, interval sum\",\"datePublished\":\"2024-11-01T09:33:58+00:00\",\"dateModified\":\"2024-11-01T11:45:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34954\/\"},\"wordCount\":449,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Kotlin coding test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34954\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34954\/\",\"name\":\"kotlin coding test course, interval sum - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:33:58+00:00\",\"dateModified\":\"2024-11-01T11:45:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34954\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34954\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34954\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"kotlin coding test course, interval sum\"}]},{\"@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, interval sum - \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\/34954\/","og_locale":"ko_KR","og_type":"article","og_title":"kotlin coding test course, interval sum - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Introduction Hello. In this session, we will learn about how to efficiently calculate the interval sum in Kotlin. This is one of the problems frequently encountered in coding tests, where we need to find the sum over a specific interval of a given sequence. Through this process, we will discuss various methods to solve &hellip; \ub354 \ubcf4\uae30 \"kotlin coding test course, interval sum\"","og_url":"https:\/\/atmokpo.com\/w\/34954\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:33:58+00:00","article_modified_time":"2024-11-01T11:45:36+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\/34954\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34954\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"kotlin coding test course, interval sum","datePublished":"2024-11-01T09:33:58+00:00","dateModified":"2024-11-01T11:45:36+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34954\/"},"wordCount":449,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Kotlin coding test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34954\/","url":"https:\/\/atmokpo.com\/w\/34954\/","name":"kotlin coding test course, interval sum - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:33:58+00:00","dateModified":"2024-11-01T11:45:36+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34954\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34954\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34954\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"kotlin coding test course, interval sum"}]},{"@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\/34954","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=34954"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34954\/revisions"}],"predecessor-version":[{"id":34955,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34954\/revisions\/34955"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}