{"id":33283,"date":"2024-11-01T09:15:08","date_gmt":"2024-11-01T09:15:08","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33283"},"modified":"2024-11-01T11:39:21","modified_gmt":"2024-11-01T11:39:21","slug":"java-coding-test-course-calculating-atm-withdrawal-time","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33283\/","title":{"rendered":"Java Coding Test Course, Calculating ATM Withdrawal Time"},"content":{"rendered":"<p><body><\/p>\n<h2>Problem Description<\/h2>\n<p>\n        You are standing at an ATM machine. To withdraw money from the ATM, you must go through several processes.<br \/>\n        The time it takes for each user to complete the withdrawal varies, and this time is how long it takes the user to perform operations at the ATM.<br \/>\n        There are `n` users, and when the withdrawal times for each user are given, you need to write a function that calculates the total time it takes for all users to complete their withdrawals.\n    <\/p>\n<h2>Input<\/h2>\n<ul>\n<li>First line: an integer `n` representing the number of users (1 \u2264 n \u2264 1000)<\/li>\n<li>Second line: `n` integers representing each user&#8217;s withdrawal time (1 \u2264 time \u2264 10000)<\/li>\n<\/ul>\n<h2>Output<\/h2>\n<p>\n        Output the total time taken for all users to complete their withdrawals.\n    <\/p>\n<h2>Example Input<\/h2>\n<pre>\n    5\n    3 1 4 3 2\n    <\/pre>\n<h2>Example Output<\/h2>\n<pre>\n    32\n    <\/pre>\n<h2>Problem Analysis<\/h2>\n<p>\n        The total time taken for all users to finish their withdrawals at the ATM includes the waiting times of other users until each user completes their withdrawal.<br \/>\n        That is, the time it takes for a specific user to finish their withdrawal is the sum of their withdrawal time and the times of all previous users who have completed their withdrawals.<br \/>\n        This allows us to calculate the withdrawal completion time for all users.\n    <\/p>\n<h2>Solution Approach<\/h2>\n<ol>\n<li>Read the withdrawal times of users and store them in an array.<\/li>\n<li>Sort the input withdrawal times in ascending order.<\/li>\n<li>To calculate the total withdrawal time, compute the cumulative withdrawal completion time for each user.<\/li>\n<li>Sum the withdrawal completion times of all users to find the final total time.<\/li>\n<\/ol>\n<h2>Java Code Implementation<\/h2>\n<pre>\n        import java.util.Arrays;\n        import java.util.Scanner;\n\n        public class ATMWithdrawal {\n            public static void main(String[] args) {\n                Scanner sc = new Scanner(System.in);\n                \n                \/\/ Input number of users\n                int n = sc.nextInt();\n                int[] times = new int[n];\n                \n                \/\/ Input withdrawal times\n                for (int i = 0; i < n; i++) {\n                    times[i] = sc.nextInt();\n                }\n                \n                \/\/ Sort time array\n                Arrays.sort(times);\n                \n                \/\/ Cumulative time variable\n                int totalTime = 0;\n                int accumulatedTime = 0;\n                \n                \/\/ Calculate cumulative time for each user\n                for (int time : times) {\n                    accumulatedTime += time; \/\/ Add current user's withdrawal time\n                    totalTime += accumulatedTime; \/\/ Add accumulated time to total time\n                }\n                \n                \/\/ Output result\n                System.out.println(totalTime);\n                \n                sc.close();\n            }\n        }\n    <\/pre>\n<h2>Code Explanation<\/h2>\n<p>\n        The above Java code is structured to solve the ATM withdrawal time calculation problem in the following way:\n    <\/p>\n<ol>\n<li>First, a Scanner object is created to receive input, and the number of users <code>n<\/code> is read.<\/li>\n<li>Next, each user's withdrawal time is read and stored in the array <code>times<\/code>.<\/li>\n<li><code>Arrays.sort(times)<\/code> sorts the withdrawal times in ascending order. This is important for minimizing each user's waiting time.<\/li>\n<li>Two variables are used to calculate the total withdrawal time: <code>totalTime<\/code> holds the total time taken for all users to complete their withdrawals, and <code>accumulatedTime<\/code> stores the current cumulative time.<\/li>\n<li>As we iterate through the withdrawal times, the current user's withdrawal time is added to the accumulated time, which is then added to the total time.<\/li>\n<li>Finally, the total withdrawal time is printed.<\/li>\n<\/ol>\n<h2>Time Complexity Analysis<\/h2>\n<p>\n        The time complexity of this algorithm primarily depends on sorting the array of withdrawal times.<br \/>\n        The average time complexity of the most common sorting algorithm, quicksort, is <strong>O(n log n)<\/strong>, so the overall time complexity of the algorithm is <strong>O(n log n)<\/strong>.<br \/>\n        After that, the task of accumulating the withdrawal times is solved in a single iteration, resulting in <strong>O(n)<\/strong>.<br \/>\n        Therefore, the overall time complexity is <strong>O(n log n)<\/strong>.\n    <\/p>\n<h2>Summary<\/h2>\n<p>\n        In this lecture, we practiced basic array sorting and cumulative summation through the ATM withdrawal time calculation problem.<br \/>\n        Most algorithmic problems can be solved using basic data structures and algorithms.<br \/>\n        When withdrawal times are optimized, waiting times reduce, and consequently, it will be more efficient for all users to use the ATM.<br \/>\n        Problems like this can be used to practice various algorithms and data structures, which can help in job preparation.\n    <\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description You are standing at an ATM machine. To withdraw money from the ATM, you must go through several processes. The time it takes for each user to complete the withdrawal varies, and this time is how long it takes the user to perform operations at the ATM. There are `n` users, and when &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33283\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Java Coding Test Course, Calculating ATM Withdrawal Time&#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":[139],"tags":[],"class_list":["post-33283","post","type-post","status-publish","format-standard","hentry","category-java-coding-test"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Java Coding Test Course, Calculating ATM Withdrawal Time - \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\/33283\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Java Coding Test Course, Calculating ATM Withdrawal Time - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description You are standing at an ATM machine. To withdraw money from the ATM, you must go through several processes. The time it takes for each user to complete the withdrawal varies, and this time is how long it takes the user to perform operations at the ATM. There are `n` users, and when &hellip; \ub354 \ubcf4\uae30 &quot;Java Coding Test Course, Calculating ATM Withdrawal Time&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33283\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:15:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:39:21+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\/33283\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33283\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Java Coding Test Course, Calculating ATM Withdrawal Time\",\"datePublished\":\"2024-11-01T09:15:08+00:00\",\"dateModified\":\"2024-11-01T11:39:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33283\/\"},\"wordCount\":535,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Java Coding Test\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33283\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33283\/\",\"name\":\"Java Coding Test Course, Calculating ATM Withdrawal Time - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:15:08+00:00\",\"dateModified\":\"2024-11-01T11:39:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33283\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33283\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33283\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Coding Test Course, Calculating ATM Withdrawal Time\"}]},{\"@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":"Java Coding Test Course, Calculating ATM Withdrawal Time - \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\/33283\/","og_locale":"ko_KR","og_type":"article","og_title":"Java Coding Test Course, Calculating ATM Withdrawal Time - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description You are standing at an ATM machine. To withdraw money from the ATM, you must go through several processes. The time it takes for each user to complete the withdrawal varies, and this time is how long it takes the user to perform operations at the ATM. There are `n` users, and when &hellip; \ub354 \ubcf4\uae30 \"Java Coding Test Course, Calculating ATM Withdrawal Time\"","og_url":"https:\/\/atmokpo.com\/w\/33283\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:15:08+00:00","article_modified_time":"2024-11-01T11:39:21+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\/33283\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33283\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Java Coding Test Course, Calculating ATM Withdrawal Time","datePublished":"2024-11-01T09:15:08+00:00","dateModified":"2024-11-01T11:39:21+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33283\/"},"wordCount":535,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Java Coding Test"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33283\/","url":"https:\/\/atmokpo.com\/w\/33283\/","name":"Java Coding Test Course, Calculating ATM Withdrawal Time - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:15:08+00:00","dateModified":"2024-11-01T11:39:21+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33283\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33283\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33283\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Java Coding Test Course, Calculating ATM Withdrawal Time"}]},{"@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\/33283","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=33283"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33283\/revisions"}],"predecessor-version":[{"id":33284,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33283\/revisions\/33284"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}