{"id":34204,"date":"2024-11-01T09:25:29","date_gmt":"2024-11-01T09:25:29","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34204"},"modified":"2024-11-01T10:58:11","modified_gmt":"2024-11-01T10:58:11","slug":"c-coding-test-course-creating-blu-ray-2","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34204\/","title":{"rendered":"C++ Coding Test Course, Creating Blu-ray"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! In this post, we will deeply explore the topic of &#8216;Creating Blu-ray&#8217; by solving algorithm problems in preparation for C++ coding tests. This problem can primarily be approached using dynamic programming and binary search. Let&#8217;s write some code together and follow the step-by-step process of solving the problem.<\/p>\n<h2>Problem Description<\/h2>\n<p>A Blu-ray is a disc that stores and plays media content such as movies. A user is given a specific list of movies, and we aim to store these movies on Blu-ray as efficiently as possible. The user can set a maximum time for each Blu-ray, and we will minimize the number of Blu-rays needed using this constraint.<\/p>\n<h3>Problem Definition<\/h3>\n<pre>\n    The list of movies consists of N movies, with the length of each movie given as A[i]. Now, we want to store all the movies using Blu-ray limited by duration T with the minimum number of Blu-rays.\n    Let's solve the problem of calculating the number of Blu-rays using the given constraints algorithmically.\n    <\/pre>\n<h3>Input<\/h3>\n<ul>\n<li>The first line contains the number of movies N (1 \u2264 N \u2264 1000) and the maximum time T (1 \u2264 T \u2264 10000) that can be stored on a Blu-ray.<\/li>\n<li>The second line provides N integers representing the length of each movie. The length of each movie is between 1 and T.<\/li>\n<\/ul>\n<h3>Output<\/h3>\n<p>Print the minimum number of Blu-rays required.<\/p>\n<h2>Problem Approach<\/h2>\n<p>To solve the problem, we follow these steps:<\/p>\n<ol>\n<li>Utilize binary search to set the range of possible maximum storage time for the Blu-ray.<\/li>\n<li>Count the number of Blu-rays needed to store the movies on each Blu-ray.<\/li>\n<li>If the time exceeds T, increase the number of Blu-rays; if it is within T, adjust the maximum Blu-ray storage time.<\/li>\n<li>Finally, print the required number of Blu-rays.<\/li>\n<\/ol>\n<h2>Code Implementation<\/h2>\n<pre>\n    <code>\n    #include &lt;iostream&gt;\n    #include &lt;vector&gt;\n    #include &lt;algorithm&gt;\n\n    using namespace std;\n\n    int countBluRays(const vector&lt;int&gt;&amp; movies, int maxTime) {\n        int count = 1; \/\/ At least 1 Blu-ray is needed\n        int currentTime = 0;\n\n        for (int movie : movies) {\n            if (currentTime + movie &gt; maxTime) {\n                count++; \/\/ A new Blu-ray is needed\n                currentTime = movie; \/\/ Assign current movie\n            } else {\n                currentTime += movie; \/\/ Add movie to the current Blu-ray\n            }\n        }\n        return count;\n    }\n\n    int main() {\n        int N, T;\n        cin &gt;&gt; N &gt;&gt; T;\n\n        vector&lt;int&gt; movies(N);\n        for (int i = 0; i &lt; N; i++) {\n            cin &gt;&gt; movies[i];\n        }\n\n        \/\/ Determine the maximum time for Blu-ray using binary search\n        int low = *max_element(movies.begin(), movies.end());\n        int high = accumulate(movies.begin(), movies.end(), 0);\n        int result = high;\n\n        while (low &lt;= high) {\n            int mid = (low + high) \/ 2;\n            int requiredBluRays = countBluRays(movies, mid);\n\n            if (requiredBluRays &lt;= T) {\n                result = mid; \/\/ We can reduce the maximum time for Blu-ray\n                high = mid - 1;\n            } else {\n                low = mid + 1; \/\/ Increase the maximum time for Blu-ray\n            }\n        }\n\n        cout &lt;&lt; result &lt;&lt; endl;\n        return 0;\n    }\n    <\/code>\n    <\/pre>\n<h2>Code Explanation<\/h2>\n<p>The code above consists of the following main parts:<\/p>\n<ol>\n<li><strong>countBluRays function:<\/strong> Calculates the number of Blu-rays needed to store the movies based on the given maximum Blu-ray time (maxTime). It iterates through each movie to check if it can be added to the current Blu-ray and adds a Blu-ray if needed.<\/li>\n<li><strong>main function:<\/strong> Receives the number of movies N and the maximum time T for the Blu-ray, then stores the lengths of the movies. It then finds the minimum Blu-ray time needed to store all movies using binary search.<\/li>\n<\/ol>\n<h2>Algorithm Complexity<\/h2>\n<p>The time complexity of the algorithm is O(N log S). Here, N is the number of movies, and S is the sum of movie lengths. The binary search process requires iterating through all movies each time, making it efficient.<\/p>\n<h2>Conclusion<\/h2>\n<p>In this post, we easily understood the basics of binary search and dynamic programming through the coding problem &#8216;Creating Blu-ray&#8217;. It is essential to grasp the essence of the problem and find an appropriate approach when solving algorithmic problems. As experience builds through practice, solving more complex problems will become easier. In the next post, we will explore more diverse problems!<\/p>\n<footer>\n<p>\u00a9 2023 C++ Coding Test Course<\/p>\n<\/footer>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! In this post, we will deeply explore the topic of &#8216;Creating Blu-ray&#8217; by solving algorithm problems in preparation for C++ coding tests. This problem can primarily be approached using dynamic programming and binary search. Let&#8217;s write some code together and follow the step-by-step process of solving the problem. Problem Description A Blu-ray is a &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34204\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C++ Coding Test Course, Creating Blu-ray&#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-34204","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 Blu-ray - \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\/34204\/\" \/>\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 Blu-ray - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! In this post, we will deeply explore the topic of &#8216;Creating Blu-ray&#8217; by solving algorithm problems in preparation for C++ coding tests. This problem can primarily be approached using dynamic programming and binary search. Let&#8217;s write some code together and follow the step-by-step process of solving the problem. Problem Description A Blu-ray is a &hellip; \ub354 \ubcf4\uae30 &quot;C++ Coding Test Course, Creating Blu-ray&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34204\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:25:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:58:11+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\/34204\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34204\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C++ Coding Test Course, Creating Blu-ray\",\"datePublished\":\"2024-11-01T09:25:29+00:00\",\"dateModified\":\"2024-11-01T10:58:11+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34204\/\"},\"wordCount\":438,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C++ Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34204\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34204\/\",\"name\":\"C++ Coding Test Course, Creating Blu-ray - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:25:29+00:00\",\"dateModified\":\"2024-11-01T10:58:11+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34204\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34204\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34204\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Coding Test Course, Creating Blu-ray\"}]},{\"@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 Blu-ray - \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\/34204\/","og_locale":"ko_KR","og_type":"article","og_title":"C++ Coding Test Course, Creating Blu-ray - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! In this post, we will deeply explore the topic of &#8216;Creating Blu-ray&#8217; by solving algorithm problems in preparation for C++ coding tests. This problem can primarily be approached using dynamic programming and binary search. Let&#8217;s write some code together and follow the step-by-step process of solving the problem. Problem Description A Blu-ray is a &hellip; \ub354 \ubcf4\uae30 \"C++ Coding Test Course, Creating Blu-ray\"","og_url":"https:\/\/atmokpo.com\/w\/34204\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:25:29+00:00","article_modified_time":"2024-11-01T10:58:11+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\/34204\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34204\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C++ Coding Test Course, Creating Blu-ray","datePublished":"2024-11-01T09:25:29+00:00","dateModified":"2024-11-01T10:58:11+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34204\/"},"wordCount":438,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C++ Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34204\/","url":"https:\/\/atmokpo.com\/w\/34204\/","name":"C++ Coding Test Course, Creating Blu-ray - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:25:29+00:00","dateModified":"2024-11-01T10:58:11+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34204\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34204\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34204\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C++ Coding Test Course, Creating Blu-ray"}]},{"@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\/34204","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=34204"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34204\/revisions"}],"predecessor-version":[{"id":34205,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34204\/revisions\/34205"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}