{"id":34128,"date":"2024-11-01T09:24:31","date_gmt":"2024-11-01T09:24:31","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=34128"},"modified":"2024-11-01T10:58:30","modified_gmt":"2024-11-01T10:58:30","slug":"c-coding-test-course-dont-want-to-be-a-liar","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/34128\/","title":{"rendered":"C++ Coding Test Course, Don&#8217;t Want to Be a Liar"},"content":{"rendered":"<p><body><\/p>\n<div class=\"box\">\n<h2>1. Problem Description<\/h2>\n<p>\n            You are a resident of a village of liars. In this village, every evening, people gather to chat, and occasionally they play a game where they discern the truth from lies among each other&#8217;s stories. The villagers have verifiable claims. For example, when person A claims that person B had dinner with them, there is a way to confirm this.\n        <\/p>\n<p>\n            The objective of the game is to determine who is telling the truth and who is lying. However, today some of the villagers are said to be lying. You need to assess how significant the truths and lies of these villagers are, and based on their statements, verify the lies of others.\n        <\/p>\n<h2>2. Problem Definition<\/h2>\n<p>\n            To address this problem, the following information is required:\n        <\/p>\n<ul>\n<li>n: the number of villagers (1 \u2264 n \u2264 100)<\/li>\n<li>input: the claims made by each villager<\/li>\n<li>output: the number of villagers telling the truth<\/li>\n<\/ul>\n<p>\n            Each villager makes statements based on what they know to be true and must identify who is lying. Your goal is to find as many people who are telling the truth as possible.\n        <\/p>\n<\/div>\n<div class=\"box\">\n<h2>3. Input Example<\/h2>\n<pre>\n3\nA had dinner with B.\nB had dinner with C.\nC had dinner with A.\n        <\/pre>\n<h2>4. Output Example<\/h2>\n<pre>\n3 (all villagers claim that they had dinner with each other)\n        <\/pre>\n<\/div>\n<div class=\"box\">\n<h2>5. Approach<\/h2>\n<p>\n            The approach to solve this problem is as follows:\n        <\/p>\n<ol>\n<li>Prepare a data structure to store the villagers&#8217; claims: You can use a map or a multidimensional array to store each villager and their assertions as key-value pairs.<\/li>\n<li>Validate the consistency of claims: Analyze the relationships between each villager&#8217;s claim and the claims of other villagers, finding commonalities and contradictions.<\/li>\n<li>Determine the maximum: Find the villagers that correspond to the case where the most villagers support each other&#8217;s claims.<\/li>\n<li>Output the result: Finally, output the number of villagers who spoke the truth.<\/li>\n<\/ol>\n<\/div>\n<div class=\"box\">\n<h2>6. C++ Implementation<\/h2>\n<p>\n            Based on the approach above, the specific C++ implementation can be carried out as follows.\n        <\/p>\n<pre>\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;string&gt;\n#include &lt;unordered_map&gt;\n#include &lt;set&gt;\n\nusing namespace std;\n\nint main() {\n    int n;\n    cout &lt;&lt; \"Enter the number of villagers: \";\n    cin &gt;&gt; n;\n\n    unordered_map&lt;string, set&lt;string&gt;&gt; claims;\n    string person, claimsPerson;\n\n    for (int i = 0; i &lt; n; ++i) {\n        cout &lt;&lt; \"Enter the content of the claim: \";\n        cin &gt;&gt; person &gt;&gt; claimsPerson;\n        claims[person].insert(claimsPerson);\n    }\n\n    \/\/ Process for verifying truth (omitted)\n    \/\/ Output the result.\n    int truthful = 0; \/\/ the number of villagers telling the truth\n\n    \/\/ Here, we determine the truth based on claims.\n    \/\/ ...\n\n    cout &lt;&lt; \"Number of villagers who told the truth: \" &lt;&lt; truthful &lt;&lt; endl;\n    return 0;\n}\n        <\/pre>\n<h3>7. Code Explanation<\/h3>\n<p>\n            In the above code, we take input from the user regarding the number of villagers and their claims about each other. First, we store the villagers&#8217; claims using <code>unordered_map<\/code>, and then with this information, we determine who is telling the truth.\n        <\/p>\n<h3>8. Code Scalability<\/h3>\n<p>\n            This code can be repetitively extended according to the number of claims made by villagers. If the number of villagers increases, we can use suitable data structures to convey and verify these claims more efficiently.\n        <\/p>\n<\/div>\n<div class=\"box\">\n<h2>9. Optimization and Additional Ideas<\/h2>\n<p>\n            Additional optimization approaches to reduce the complexity of the problem could include:\n        <\/p>\n<ul>\n<li>Conditional branching: If there are specific conditions to handle for each villager&#8217;s claim, processing can branch based on certain conditions.<\/li>\n<li>DFS or BFS approach: Using graph traversal algorithms to explore the relationships among connected villagers can increase the chances of identifying truth-tellers.<\/li>\n<li>Establishing criteria for judging lies: By setting easily assessable criteria, we can evaluate truths collectively, thereby reducing complexity.<\/li>\n<\/ul>\n<\/div>\n<div class=\"box\">\n<h2>10. Conclusion<\/h2>\n<p>\n            This problem presents an interesting challenge that requires algorithmic thinking. Through this, you will learn several key principles about data processing and judgment. Such problems frequently occur in programming interviews and essentially require the ability to solve problems based on concepts you know.\n        <\/p>\n<p>\n            Finally, in preparing for coding tests, it is important to encounter various types of problems. By solving these problems frequently, you will naturally notice an improvement in your algorithmic skills. Wishing you success in your coding test preparations.\n        <\/p>\n<\/div>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Problem Description You are a resident of a village of liars. In this village, every evening, people gather to chat, and occasionally they play a game where they discern the truth from lies among each other&#8217;s stories. The villagers have verifiable claims. For example, when person A claims that person B had dinner with &hellip; <a href=\"https:\/\/atmokpo.com\/w\/34128\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;C++ Coding Test Course, Don&#8217;t Want to Be a Liar&#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-34128","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, Don&#039;t Want to Be a Liar - \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\/34128\/\" \/>\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, Don&#039;t Want to Be a Liar - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"1. Problem Description You are a resident of a village of liars. In this village, every evening, people gather to chat, and occasionally they play a game where they discern the truth from lies among each other&#8217;s stories. The villagers have verifiable claims. For example, when person A claims that person B had dinner with &hellip; \ub354 \ubcf4\uae30 &quot;C++ Coding Test Course, Don&#8217;t Want to Be a Liar&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/34128\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:24:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T10:58:30+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\/34128\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34128\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"C++ Coding Test Course, Don&#8217;t Want to Be a Liar\",\"datePublished\":\"2024-11-01T09:24:31+00:00\",\"dateModified\":\"2024-11-01T10:58:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34128\/\"},\"wordCount\":544,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"C++ Coding Test Tutorials\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/34128\/\",\"url\":\"https:\/\/atmokpo.com\/w\/34128\/\",\"name\":\"C++ Coding Test Course, Don't Want to Be a Liar - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:24:31+00:00\",\"dateModified\":\"2024-11-01T10:58:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/34128\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/34128\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/34128\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ Coding Test Course, Don&#8217;t Want to Be a Liar\"}]},{\"@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, Don't Want to Be a Liar - \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\/34128\/","og_locale":"ko_KR","og_type":"article","og_title":"C++ Coding Test Course, Don't Want to Be a Liar - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"1. Problem Description You are a resident of a village of liars. In this village, every evening, people gather to chat, and occasionally they play a game where they discern the truth from lies among each other&#8217;s stories. The villagers have verifiable claims. For example, when person A claims that person B had dinner with &hellip; \ub354 \ubcf4\uae30 \"C++ Coding Test Course, Don&#8217;t Want to Be a Liar\"","og_url":"https:\/\/atmokpo.com\/w\/34128\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:24:31+00:00","article_modified_time":"2024-11-01T10:58:30+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\/34128\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/34128\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"C++ Coding Test Course, Don&#8217;t Want to Be a Liar","datePublished":"2024-11-01T09:24:31+00:00","dateModified":"2024-11-01T10:58:30+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/34128\/"},"wordCount":544,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["C++ Coding Test Tutorials"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/34128\/","url":"https:\/\/atmokpo.com\/w\/34128\/","name":"C++ Coding Test Course, Don't Want to Be a Liar - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:24:31+00:00","dateModified":"2024-11-01T10:58:30+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/34128\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/34128\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/34128\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"C++ Coding Test Course, Don&#8217;t Want to Be a Liar"}]},{"@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\/34128","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=34128"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34128\/revisions"}],"predecessor-version":[{"id":34129,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/34128\/revisions\/34129"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=34128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=34128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=34128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}