{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-11052-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"bfe8526d-fcbf-5755-9410-d8d6573061b4","excerpt":"n장의 카드를 사야할 때, 1장부터 n장까지 카드가 들어있는 카드팩의 가격이 주어진다. 이 때 n장의 카드를 사는 최대한 비싼 가격을 출력하는 문제. 첫 풀이는 1부터 10까지 반복을 수행하여 가격이 저장된 리스트 l을 이용해 을 이용하여 제일 큰 값을 출력했지만 풀이에 작성된 반례로 인해 틀리게 되었다. 이후 다이내믹 프로그래밍을 이용하여 2부터 n까지 반복을 수행하며 1부터 i를 2로 나눈 값까지 반복을 수행하며 의 점화식을 사용하여 모든 장 수의 최대 값을 이용하여 풀었다.","html":"<p>n장의 카드를 사야할 때, 1장부터 n장까지 카드가 들어있는 카드팩의 가격이 주어진다. 이 때 n장의 카드를 사는 최대한 비싼 가격을 출력하는 문제. 첫 풀이는 1부터 10까지 반복을 수행하여 가격이 저장된 리스트 l을 이용해 <code class=\"language-((n // i) * l[i]) + l[n \"> i]</code>을 이용하여 제일 큰 값을 출력했지만 풀이에 작성된 반례로 인해 틀리게 되었다. 이후 다이내믹 프로그래밍을 이용하여 2부터 n까지 반복을 수행하며 1부터 i를 2로 나눈 값까지 반복을 수행하며 <code class=\"language-text\">max(l[i], dp[i], dp[j] + dp[i-j])</code>의 점화식을 사용하여 모든 장 수의 최대 값을 이용하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># n = int(input())</span>\n<span class=\"token comment\"># l = [0] + list(map(int, input().split()))</span>\n<span class=\"token comment\"># max = 0</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># for i in range(1, n+1):</span>\n<span class=\"token comment\">#     cost = ((n // i) * l[i]) + l[n % i]</span>\n<span class=\"token comment\">#     if max &lt; cost:</span>\n<span class=\"token comment\">#         max = cost</span>\n<span class=\"token comment\"># print(max)</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># 10</span>\n<span class=\"token comment\"># 1 100 160 1 1 1 1 1 1 1</span>\n<span class=\"token comment\"># 위 반례에서 실패</span>\n\nn <span class=\"token operator\">=</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>\nl <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>\ndp <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token number\">0</span> <span class=\"token keyword\">for</span> _ <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\ndp<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> l<span class=\"token punctuation\">[</span><span class=\"token number\">1</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\">2</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    <span class=\"token keyword\">for</span> j <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> <span class=\"token punctuation\">(</span>i<span class=\"token operator\">//</span><span class=\"token number\">2</span><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>\n        dp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span>l<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> dp<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> dp<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">+</span> dp<span class=\"token punctuation\">[</span>i<span class=\"token operator\">-</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>dp<span class=\"token punctuation\">[</span>n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-11052 - Python","date":"November 23, 2020"}}},"pageContext":{"slug":"/Algorithm/BOJ-11052-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-11403-Python/"},"frontmatter":{"title":"BOJ-11403 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-14888-Python/"},"frontmatter":{"title":"BOJ-14888 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}