{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-1106-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"da424997-fff4-528a-8a16-74004e387635","excerpt":"광고의 비용과 광고로 인해 늘어나는 고객의 수가 n개 주어진다고 한다. 적어도 c명의 고객의 수를 늘리기 위해서 투자해야되는 최소한의 비용을 출력하는 문제. 첫 번째 풀이는 dp비용에 최대한 구할 수 있는 사람의 수를 저장한 후 최초로 c가 넘는 값을 출력하여 풀었다. 이 방법은 최대 비용 1000 * 100까지 비교를 수행해야 하므로 두 번째 풀이는 dp고객의 수에 최소한의 비용울 저장하여 풀었다. 가격과 고객의 수를 입력받은 후, 고객의 수부터 최대 고객의 수인 110…","html":"<p>광고의 비용과 광고로 인해 늘어나는 고객의 수가 n개 주어진다고 한다. 적어도 c명의 고객의 수를 늘리기 위해서 투자해야되는 최소한의 비용을 출력하는 문제. 첫 번째 풀이는 dp[비용]에 최대한 구할 수 있는 사람의 수를 저장한 후 최초로 c가 넘는 값을 출력하여 풀었다. 이 방법은 최대 비용 1000 * 100까지 비교를 수행해야 하므로 두 번째 풀이는 dp[고객의 수]에 최소한의 비용울 저장하여 풀었다. 가격과 고객의 수를 입력받은 후, 고객의 수부터 최대 고객의 수인 1100까지 반복을 수행하였다. 해당 인자 j를 이용하여 <code class=\"language-text\">dp[j] = min(dp[j], dp[j-customer] + cost)</code>의 점화식을 사용하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># MAX = 1000 * 100 + 1</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># c, n = map(int, input().split())</span>\n<span class=\"token comment\"># # dp[비용] = 최대한 구할 수 있는 사람의 수</span>\n<span class=\"token comment\"># dp = [0 for _ in range(MAX)]</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># cost = [0 for _ in range(n)]</span>\n<span class=\"token comment\"># customer = [0 for _ in range(n)]</span>\n<span class=\"token comment\"># for i in range(n):</span>\n<span class=\"token comment\">#     cost[i], customer[i] = map(int, input().split())</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># for i in range(n):</span>\n<span class=\"token comment\">#     for j in range(cost[i], MAX):</span>\n<span class=\"token comment\">#         dp[j] = max(dp[j], dp[j-cost[i]] + customer[i])</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># for i in range(MAX):</span>\n<span class=\"token comment\">#     if dp[i] >= c:</span>\n<span class=\"token comment\">#         print(i)</span>\n<span class=\"token comment\">#         exit(0)</span>\n\n\n<span class=\"token comment\"># 최대 1000명, 홍보 최대 비용 100</span>\nMAX_COST <span class=\"token operator\">=</span> <span class=\"token number\">1000</span> <span class=\"token operator\">*</span> <span class=\"token number\">100</span> <span class=\"token operator\">+</span> <span class=\"token number\">1</span>\nMAX_CUSTOMER <span class=\"token operator\">=</span> <span class=\"token number\">1000</span> <span class=\"token operator\">+</span> <span class=\"token number\">100</span> <span class=\"token operator\">+</span> <span class=\"token number\">1</span>\n\nc<span class=\"token punctuation\">,</span> n <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<span class=\"token comment\"># dp[사람의 수] = 최소한의 비용</span>\n<span class=\"token comment\"># 최대 인원 + 홍보 최대 인원 100명까지 비교하면 됨</span>\ndp <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>MAX_COST <span class=\"token keyword\">for</span> _ <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>MAX_CUSTOMER<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\ndp<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">0</span>\n\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>n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    cost<span class=\"token punctuation\">,</span> customer <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    <span class=\"token keyword\">for</span> j <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>customer<span class=\"token punctuation\">,</span> MAX_CUSTOMER<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        dp<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">min</span><span class=\"token punctuation\">(</span>dp<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> dp<span class=\"token punctuation\">[</span>j<span class=\"token operator\">-</span>customer<span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> cost<span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">min</span><span class=\"token punctuation\">(</span>dp<span class=\"token punctuation\">[</span>c<span class=\"token punctuation\">:</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-1106 - Python","date":"January 16, 2021"}}},"pageContext":{"slug":"/Algorithm/BOJ-1106-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-1275-Python/"},"frontmatter":{"title":"BOJ-1275 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-8394-Python/"},"frontmatter":{"title":"BOJ-8394 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}