{"id":33996,"date":"2024-11-01T09:22:52","date_gmt":"2024-11-01T09:22:52","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=33996"},"modified":"2024-11-01T10:54:22","modified_gmt":"2024-11-01T10:54:22","slug":"c-coding-test-course-delivering-gifts","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/33996\/","title":{"rendered":"C# Coding Test Course, Delivering Gifts"},"content":{"rendered":"<p><body><\/p>\n<article>\n<section>\n<h2>Problem Description<\/h2>\n<p>\n                You are planning an event to deliver Christmas surprise gifts to your friends.<br \/>\n                There are N friends, and each friend has a list of gifts they would like to receive.<br \/>\n                You need to ensure that as many friends as possible receive their desired gifts.<br \/>\n                Each friend specifies one gift they want, and there is only one gift.<br \/>\n                However, the gift can only be delivered to one friend.\n            <\/p>\n<h3>Input Format<\/h3>\n<ul>\n<li>The first line contains the number of friends N.<\/li>\n<li>From the second line up to the Nth line, the gifts each friend wants are listed.<\/li>\n<\/ul>\n<h3>Output Format<\/h3>\n<p>\n                Output the maximum number of friends who can receive their desired gifts.\n            <\/p>\n<h3>Constraints<\/h3>\n<ul>\n<li>1 \u2264 N \u2264 100<\/li>\n<li>Gifts are represented by uppercase letters, with a maximum of 26 types.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>Approach to the Problem<\/h2>\n<p>\n                This problem is fundamentally similar to the maximum matching problem in graph theory.<br \/>\n                Each friend can be represented as a vertex, and the gifts they desire can be represented as edges.<br \/>\n                To solve this problem, we will take the friends&#8217; gift requests as input,<br \/>\n                create a list of friends requesting each gift, and then use an algorithm to find the maximum matching.\n            <\/p>\n<h3>Algorithm Overview<\/h3>\n<p>\n                &#8211; Construct a graph based on the number of friends and the requested gifts.<br \/>\n                &#8211; Explore the graph to find assignable gifts for each friend.<br \/>\n                &#8211; Use the DFS (Depth First Search) algorithm to attempt possible matchings.\n            <\/p>\n<\/section>\n<section>\n<h2>Code Implementation<\/h2>\n<p>\n                Below is the solution code for the gift delivery problem written in C#.\n            <\/p>\n<pre>\n                <code>\nusing System;\nusing System.Collections.Generic;\n\nclass Program\n{\n    static int N;                         \/\/ Number of friends\n    static List<string> friends;          \/\/ List of gifts friends want\n    static Dictionary<string, int=\"\"> gifts; \/\/ Matching status of each gift\n    static bool[] visited;                \/\/ Record of DFS visitation\n\n    static void Main(string[] args)\n    {\n        N = int.Parse(Console.ReadLine());\n        friends = new List<string>();\n\n        for (int i = 0; i &lt; N; i++)\n        {\n            friends.Add(Console.ReadLine());\n        }\n\n        gifts = new Dictionary<string, int=\"\">();\n        int totalMatched = 0;\n\n        foreach (var friend in friends)\n        {\n            visited = new bool[26];\n            if (DFS(friend[0], ref totalMatched))\n            {\n                totalMatched++;\n            }\n        }\n\n        Console.WriteLine(totalMatched);\n    }\n\n    static bool DFS(char gift, ref int totalMatched)\n    {\n        int index = gift - 'A';\n\n        if (visited[index]) return false; \/\/ Gift already visited\n        visited[index] = true;\n\n        if (!gifts.ContainsKey(gift.ToString()) || gifts[gift.ToString()] == -1)\n        {\n            gifts[gift.ToString()] = totalMatched; \/\/ Gift matching\n            return true;\n        }\n\n        return false;\n    }\n}\n                <\/string,><\/string><\/string,><\/string><\/code>\n            <\/pre>\n<\/section>\n<section>\n<h2>Code Explanation<\/h2>\n<p>\n                The above code solves the gift delivery problem through the following procedures.\n            <\/p>\n<ul>\n<li><strong>Input Reading:<\/strong> Read the number of friends N and input the desired gifts for each friend.<\/li>\n<li><strong>DFS Function Implementation:<\/strong> Check if the requested gift is available and attempt matching.<\/li>\n<li><strong>Visitation Record:<\/strong> Manage visitation records to accommodate requests for each gift only once.<\/li>\n<li><strong>Output Result:<\/strong> Output the maximum matching result.<\/li>\n<\/ul>\n<\/section>\n<section>\n<h2>Time Complexity<\/h2>\n<p>\n                This algorithm has a time complexity of O(N^2).<br \/>\n                Since DFS is called for each friend, and the number of gifts is limited to a maximum of 26,<br \/>\n                it is efficient enough within the problem&#8217;s constraints.\n            <\/p>\n<\/section>\n<section>\n<h2>Conclusion<\/h2>\n<p>\n                The &#8220;Gift Delivery&#8221; problem is an interesting problem of distributing gifts among friends.<br \/>\n                It demonstrates that it can be implemented through the principles of DFS and maximum matching in graphs.<br \/>\n                This principle can be applied to solve similar problems in the future.\n            <\/p>\n<p>\n                I hope this article helps you prepare for C# coding tests.<br \/>\n                Please practice algorithms through various problems.\n            <\/p>\n<\/section>\n<\/article>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Problem Description You are planning an event to deliver Christmas surprise gifts to your friends. There are N friends, and each friend has a list of gifts they would like to receive. You need to ensure that as many friends as possible receive their desired gifts. Each friend specifies one gift they want, and there &hellip; <a href=\"https:\/\/atmokpo.com\/w\/33996\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C# Coding Test Course, Delivering Gifts&#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-33996","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, Delivering Gifts - \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\/33996\/\" \/>\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, Delivering Gifts - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"Problem Description You are planning an event to deliver Christmas surprise gifts to your friends. There are N friends, and each friend has a list of gifts they would like to receive. You need to ensure that as many friends as possible receive their desired gifts. Each friend specifies one gift they want, and there &hellip; \ub354 \ubcf4\uae30 &quot;C# Coding Test Course, Delivering Gifts&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/33996\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:22:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:54:22+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\/33996\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33996\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C# Coding Test Course, Delivering Gifts\",\"datePublished\":\"2024-11-01T09:22:52+00:00\",\"dateModified\":\"2024-11-01T10:54:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33996\/\"},\"wordCount\":410,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C# Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/33996\/\",\"url\":\"https:\/\/atmokpo.com\/w\/33996\/\",\"name\":\"C# Coding Test Course, Delivering Gifts - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:22:52+00:00\",\"dateModified\":\"2024-11-01T10:54:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/33996\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/33996\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/33996\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Coding Test Course, Delivering Gifts\"}]},{\"@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, Delivering Gifts - \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\/33996\/","og_locale":"ko_KR","og_type":"article","og_title":"C# Coding Test Course, Delivering Gifts - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"Problem Description You are planning an event to deliver Christmas surprise gifts to your friends. There are N friends, and each friend has a list of gifts they would like to receive. You need to ensure that as many friends as possible receive their desired gifts. Each friend specifies one gift they want, and there &hellip; \ub354 \ubcf4\uae30 \"C# Coding Test Course, Delivering Gifts\"","og_url":"https:\/\/atmokpo.com\/w\/33996\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:22:52+00:00","article_modified_time":"2024-11-01T10:54:22+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\/33996\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/33996\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C# Coding Test Course, Delivering Gifts","datePublished":"2024-11-01T09:22:52+00:00","dateModified":"2024-11-01T10:54:22+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/33996\/"},"wordCount":410,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C# Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/33996\/","url":"https:\/\/atmokpo.com\/w\/33996\/","name":"C# Coding Test Course, Delivering Gifts - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:22:52+00:00","dateModified":"2024-11-01T10:54:22+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/33996\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/33996\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/33996\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C# Coding Test Course, Delivering Gifts"}]},{"@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\/33996","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=33996"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33996\/revisions"}],"predecessor-version":[{"id":33997,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/33996\/revisions\/33997"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=33996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=33996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=33996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}