{"id":34014,"date":"2024-11-01T09:23:06","date_gmt":"2024-11-01T09:23:06","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34014"},"modified":"2024-11-01T10:54:18","modified_gmt":"2024-11-01T10:54:18","slug":"c-coding-test-course-fast-track-with-time-machine","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34014\/","title":{"rendered":"C# Coding Test Course, Fast Track with Time Machine"},"content":{"rendered":"<p><body><\/p>\n<p>Hello! Today, we will conduct a lecture on solving algorithm problems using C#. The topic is &#8216;Traveling Quickly with a Time Machine&#8217;. This problem is a mix of DFS (Depth First Search) and BFS (Breadth First Search), which are commonly encountered in coding tests, and the main goal is to find the shortest path.<\/p>\n<h2>Problem Description<\/h2>\n<p>You have a time machine that can travel through time. Your goal is to move from the current time to a specific time in the future. However, the time machine follows these rules:<\/p>\n<ul>\n<li>If the current time is X, moving to X &#8211; 1 will take you to 1 second later.<\/li>\n<li>If the current time is X, moving to X + 1 will take you to 1 second later.<\/li>\n<li>If the current time is X, you can teleport to X * 2 seconds.<\/li>\n<\/ul>\n<p>You are currently at time 0 seconds, and you need to arrive after N seconds. Calculate the fastest way to reach N seconds using the time machine.<\/p>\n<h2>Input Format<\/h2>\n<p>The input consists of a single line containing the target time N. (0 \u2264 N \u2264 100,000)<\/p>\n<h2>Output Format<\/h2>\n<p>Output the time it takes to reach the target in the fastest way.<\/p>\n<h2>Example Problem<\/h2>\n<pre>\n    Input:\n    5\n\n    Output:\n    5\n    <\/pre>\n<h2>Problem Solving Approach<\/h2>\n<p>This problem can be solved using BFS. BFS is very effective for finding the shortest path and can explore all possible routes to find the optimal solution. When using BFS, a Queue is used to store the current state, and the next state is added to the queue accordingly.<\/p>\n<h3>Step 1: Understanding the BFS Structure<\/h3>\n<p>BFS proceeds with the following structure:<\/p>\n<ol>\n<li>Add the current position to the queue.<\/li>\n<li>Remove a position from the queue and store the time required to reach that position.<\/li>\n<li>Calculate all possible moves from the current position.<\/li>\n<li>If the new position matches the target position (N), end the process.<\/li>\n<li>If not, check the new position and add it to the queue.<\/li>\n<\/ol>\n<h3>Step 2: Implementing C# Code<\/h3>\n<p>Let&#8217;s implement the code to solve this using BFS:<\/p>\n<pre><code>\n    using System;\n    using System.Collections.Generic;\n\n    public class TimeMachine\n    {\n        public static void Main(string[] args)\n        {\n            int targetTime = int.Parse(Console.ReadLine());\n            Console.WriteLine(FindMinimumTime(targetTime));\n        }\n\n        public static int FindMinimumTime(int target)\n        {\n            Queue<int> queue = new Queue<int>();\n            bool[] visited = new bool[100001];\n            queue.Enqueue(0); \/\/ Starting time\n            visited[0] = true;\n\n            int[] timeArray = new int[100001]; \/\/ Store the time taken to reach each index\n\n            while (queue.Count > 0)\n            {\n                int currentTime = queue.Dequeue();\n\n                if (currentTime == target)\n                {\n                    return timeArray[currentTime];\n                }\n\n                \/\/ Move: X - 1\n                if (currentTime - 1 >= 0 && !visited[currentTime - 1])\n                {\n                    queue.Enqueue(currentTime - 1);\n                    visited[currentTime - 1] = true;\n                    timeArray[currentTime - 1] = timeArray[currentTime] + 1; \/\/ Add travel time\n                }\n\n                \/\/ Move: X + 1\n                if (currentTime + 1 <= 100000 &#038;&#038; !visited[currentTime + 1])\n                {\n                    queue.Enqueue(currentTime + 1);\n                    visited[currentTime + 1] = true;\n                    timeArray[currentTime + 1] = timeArray[currentTime] + 1; \/\/ Add travel time\n                }\n\n                \/\/ Move: X * 2\n                if (currentTime * 2 <= 100000 &#038;&#038; !visited[currentTime * 2])\n                {\n                    queue.Enqueue(currentTime * 2);\n                    visited[currentTime * 2] = true;\n                    timeArray[currentTime * 2] = timeArray[currentTime] + 1; \/\/ Add travel time\n                }\n            }\n\n            return -1; \/\/ If unreachable\n        }\n    }\n    <\/code><\/pre>\n<h2>Step 3: Code Explanation<\/h2>\n<p>Let's explain each part in detail:<\/p>\n<h3>Queue and Array<\/h3>\n<p>The Queue is the core data structure of BFS, used to maintain the current position. The visited array records already checked times to avoid infinite loops, and the timeArray stores the minimum time to reach each time.<\/p>\n<h3>Movement Logic<\/h3>\n<p>The movement logic checks if it's possible to move from the current time to X-1, X+1, and X*2. If the position has already been visited, it will not be added to the queue.<\/p>\n<h3>Final Goal Check<\/h3>\n<p>If the current time equals the target time, the BFS ends, and the time taken until then is returned. This allows us to arrive at the target time in the shortest time possible.<\/p>\n<h2>Conclusion<\/h2>\n<p>This problem is a representative example of performing graph exploration using BFS. It is frequently featured in coding tests, so understanding and applying it is essential. I hope you have strengthened your skills in BFS through this implementation process. I will return next time with a more interesting algorithm problem!<\/p>\n<p>Thank you!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hello! Today, we will conduct a lecture on solving algorithm problems using C#. The topic is &#8216;Traveling Quickly with a Time Machine&#8217;. This problem is a mix of DFS (Depth First Search) and BFS (Breadth First Search), which are commonly encountered in coding tests, and the main goal is to find the shortest path. Problem &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34014\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C# Coding Test Course, Fast Track with Time Machine&#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-34014","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, Fast Track with Time Machine - \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\/34014\/\" \/>\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, Fast Track with Time Machine - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Hello! Today, we will conduct a lecture on solving algorithm problems using C#. The topic is &#8216;Traveling Quickly with a Time Machine&#8217;. This problem is a mix of DFS (Depth First Search) and BFS (Breadth First Search), which are commonly encountered in coding tests, and the main goal is to find the shortest path. Problem &hellip; \ub354 \ubcf4\uae30 &quot;C# Coding Test Course, Fast Track with Time Machine&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34014\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:23:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:54:18+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=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/34014\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34014\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C# Coding Test Course, Fast Track with Time Machine\",\"datePublished\":\"2024-11-01T09:23:06+00:00\",\"dateModified\":\"2024-11-01T10:54:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34014\/\"},\"wordCount\":505,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C# Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34014\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34014\/\",\"name\":\"C# Coding Test Course, Fast Track with Time Machine - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:23:06+00:00\",\"dateModified\":\"2024-11-01T10:54:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34014\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34014\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34014\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Coding Test Course, Fast Track with Time Machine\"}]},{\"@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, Fast Track with Time Machine - \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\/34014\/","og_locale":"ko_KR","og_type":"article","og_title":"C# Coding Test Course, Fast Track with Time Machine - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Hello! Today, we will conduct a lecture on solving algorithm problems using C#. The topic is &#8216;Traveling Quickly with a Time Machine&#8217;. This problem is a mix of DFS (Depth First Search) and BFS (Breadth First Search), which are commonly encountered in coding tests, and the main goal is to find the shortest path. Problem &hellip; \ub354 \ubcf4\uae30 \"C# Coding Test Course, Fast Track with Time Machine\"","og_url":"https:\/\/atmokpo.com\/w\/34014\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:23:06+00:00","article_modified_time":"2024-11-01T10:54:18+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":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/34014\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34014\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C# Coding Test Course, Fast Track with Time Machine","datePublished":"2024-11-01T09:23:06+00:00","dateModified":"2024-11-01T10:54:18+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34014\/"},"wordCount":505,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C# Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34014\/","url":"https:\/\/atmokpo.com\/w\/34014\/","name":"C# Coding Test Course, Fast Track with Time Machine - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:23:06+00:00","dateModified":"2024-11-01T10:54:18+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34014\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34014\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34014\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C# Coding Test Course, Fast Track with Time Machine"}]},{"@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\/34014","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=34014"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34014\/revisions"}],"predecessor-version":[{"id":34015,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34014\/revisions\/34015"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}