{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-12865-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"4530ea8d-5b19-5c1b-9330-c4df5aca192e","excerpt":"정해진 무게 한도에 맞춰서 최대의 가치를 출력하는 배낭, 다이내믹 프로그래밍 문제. 물건의 수 만큼 배열을 만든 후 물건 > 무게순으로 반복을 수행한다. 그 후 현재 반복중인 무게에 따라 넣을 수 없으면 같은 무게, 저번 반복 배열 값을 할당. ‘들 수 있으면 같은 무게, 저번 반복’ 값과 ‘현재 물건의 가치 + 저번 물건의 현재 반복 무게 - 현재 물건의 무게 배열’ 값 중 큰 것을 할당하여 풀었다.","html":"<p>정해진 무게 한도에 맞춰서 최대의 가치를 출력하는 배낭, 다이내믹 프로그래밍 문제. [물건의 수][무게의 크기] 만큼 배열을 만든 후 물건 > 무게순으로 반복을 수행한다. 그 후 현재 반복중인 무게에 따라 넣을 수 없으면 같은 무게, 저번 반복 배열 값을 할당. ‘들 수 있으면 같은 무게, 저번 반복’ 값과 ‘현재 물건의 가치 + 저번 물건의 현재 반복 무게 - 현재 물건의 무게 배열’ 값 중 큰 것을 할당하여 풀었다.</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\nn<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>\nw_v <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">]</span>\nans <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</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>k<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</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\n<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 punctuation\">)</span><span class=\"token punctuation\">:</span>\n    w_v<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</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><span class=\"token punctuation\">)</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><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    <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> k<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        w <span class=\"token operator\">=</span> w_v<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span> <span class=\"token comment\"># 무게</span>\n        v <span class=\"token operator\">=</span> w_v<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token comment\"># 가치</span>\n        <span class=\"token keyword\">if</span> j <span class=\"token operator\">&lt;</span> w<span class=\"token punctuation\">:</span> <span class=\"token comment\"># 들 수 없으면 ?</span>\n            ans<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> ans<span class=\"token punctuation\">[</span>i<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token comment\"># 같은 무게, 저번 반복된 물건의 값</span>\n        <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span> <span class=\"token comment\"># 들 수 있다면?</span>\n            <span class=\"token comment\"># 같은 무게, 저번 반복된 물건의 값과</span>\n            <span class=\"token comment\"># 현재 물건의 가치 + 저번 반복된 물건의 현재 반복된 무게 - 현재 물건의 무게의 값을 더한 값을</span>\n            <span class=\"token comment\"># 비교해서 더욱 큰 것을 배열에 할당</span>\n            ans<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span>ans<span class=\"token punctuation\">[</span>i<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span> v <span class=\"token operator\">+</span> ans<span class=\"token punctuation\">[</span>i<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>j<span class=\"token operator\">-</span>w<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 punctuation\">[</span>n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>k<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-12865 - Python","date":"October 26, 2020"}}},"pageContext":{"slug":"/Algorithm/BOJ-12865-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-10995-Python/"},"frontmatter":{"title":"BOJ-10995 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-1991-Python/"},"frontmatter":{"title":"BOJ-1991 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}