{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-16562-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"3e04322b-1b9f-5ab7-bd4a-0062eba87e03","excerpt":"n명의 친구와 m개의 친구 관계도, k원이 있을 때 모든 친구들을 살 수 있는 최소 금액을 출력하며 살 수 없을 시 문자열을 출력하는 문제. 유니온 파인드 방법을 이용하여 풀었다. union 연산 시에 입력받는 친구의 가격을 비교하여 값이 작은 친구를 부모로 저장하였다. 그 후 모든 친구들의 부모를 set 자료형에 담은 후 해당 친구들의 값을 더하여 비교 후 출력하여 풀었다.","html":"<p>n명의 친구와 m개의 친구 관계도, k원이 있을 때 모든 친구들을 살 수 있는 최소 금액을 출력하며 살 수 없을 시 문자열을 출력하는 문제. 유니온 파인드 방법을 이용하여 풀었다. union 연산 시에 입력받는 친구의 가격을 비교하여 값이 작은 친구를 부모로 저장하였다. 그 후 모든 친구들의 부모를 set 자료형에 담은 후 해당 친구들의 값을 더하여 비교 후 출력하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> sys\n<span class=\"token builtin\">input</span> <span class=\"token operator\">=</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readline\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">find</span><span class=\"token punctuation\">(</span>node<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">if</span> parents<span class=\"token punctuation\">[</span>node<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> node<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">return</span> node\n\n    p <span class=\"token operator\">=</span> find<span class=\"token punctuation\">(</span>parents<span class=\"token punctuation\">[</span>node<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n    parents<span class=\"token punctuation\">[</span>node<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> p\n    <span class=\"token keyword\">return</span> p\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">union</span><span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    pa<span class=\"token punctuation\">,</span> pb <span class=\"token operator\">=</span> find<span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> find<span class=\"token punctuation\">(</span>b<span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">if</span> pa <span class=\"token operator\">!=</span> pb<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">if</span> pay<span class=\"token punctuation\">[</span>pa<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> pay<span class=\"token punctuation\">[</span>pb<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>\n            parents<span class=\"token punctuation\">[</span>pb<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> pa\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n            parents<span class=\"token punctuation\">[</span>pa<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> pb\n\nn<span class=\"token punctuation\">,</span> m<span class=\"token punctuation\">,</span> k <span class=\"token operator\">=</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\npay <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\nparents <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>i <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>m<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    a<span class=\"token punctuation\">,</span> b <span class=\"token operator\">=</span> <span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> <span class=\"token builtin\">input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>split<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    union<span class=\"token punctuation\">(</span>a<span class=\"token punctuation\">,</span> b<span class=\"token punctuation\">)</span>\n\nset_parents <span class=\"token operator\">=</span> <span class=\"token builtin\">set</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> n<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    set_parents<span class=\"token punctuation\">.</span>add<span class=\"token punctuation\">(</span>find<span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\nans <span class=\"token operator\">=</span> <span class=\"token builtin\">sum</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">lambda</span> x<span class=\"token punctuation\">:</span> pay<span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> set_parents<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>ans <span class=\"token keyword\">if</span> ans <span class=\"token operator\">&lt;=</span> k <span class=\"token keyword\">else</span> <span class=\"token string\">\"Oh no\"</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-16562 - Python","date":"March 02, 2021"}}},"pageContext":{"slug":"/Algorithm/BOJ-16562-Python/","previous":{"fields":{"slug":"/Algorithm/프로그래머스-프린터-Python/"},"frontmatter":{"title":"프로그래머스-프린터 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-1915-Python/"},"frontmatter":{"title":"BOJ-1915 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}