{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-1788-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"8ea2aaf3-37eb-577d-ac75-108e33650d2c","excerpt":"피보나치 수를 음수일 경우까지 확장한 문제. n <= 1일 때고 f(n) = f(n-1) + f(n-2)가 성립되도록 확장한다. n이 주어진 후 해당 피보나치수가 양수일 때 1, 음수일 때 -1, 0일 때 0을 출력한 후, 해당 피보나치수의 절댓값을 출력하는 문제. 절댓값을 출력하는 부분에서 음수와 양수의 값이 다르지 않다는 것을 유추하게 되었다. 첫 접근은 -1보다 작은 수들을 -1로 출력한 후 최대 크기만큼 연산 후 절댓값 n의 피보나치 수를 출력하여 풀었으나, n…","html":"<p>피보나치 수를 음수일 경우까지 확장한 문제. n &#x3C;= 1일 때고 f(n) = f(n-1) + f(n-2)가 성립되도록 확장한다. n이 주어진 후 해당 피보나치수가 양수일 때 1, 음수일 때 -1, 0일 때 0을 출력한 후, 해당 피보나치수의 절댓값을 출력하는 문제. 절댓값을 출력하는 부분에서 음수와 양수의 값이 다르지 않다는 것을 유추하게 되었다. 첫 접근은 -1보다 작은 수들을 -1로 출력한 후 최대 크기만큼 연산 후 절댓값 n의 피보나치 수를 출력하여 풀었으나, n이 홀수일 때는 양수가 나오게 되어 WA 결과를 받게되었다. 조건문에 해당 조건을 추가한 후 나머지 연산은 그대로 이용하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">n <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>\nsize <span class=\"token operator\">=</span> <span class=\"token number\">1000001</span>\n\n<span class=\"token keyword\">if</span> n <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"0\\n0\"</span><span class=\"token punctuation\">)</span>\n    exit<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">print</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 keyword\">if</span> n <span class=\"token operator\">%</span> <span class=\"token number\">2</span> <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token keyword\">and</span> n <span class=\"token operator\">&lt;</span> <span class=\"token number\">0</span> <span class=\"token keyword\">else</span> <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n\nn <span class=\"token operator\">=</span> <span class=\"token builtin\">abs</span><span class=\"token punctuation\">(</span>n<span class=\"token punctuation\">)</span>\n\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>size<span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span>\ndp<span class=\"token punctuation\">[</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token number\">1</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> size<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 operator\">=</span> <span class=\"token punctuation\">(</span>dp<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 operator\">+</span> dp<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 punctuation\">)</span> <span class=\"token operator\">%</span> <span class=\"token number\">1000000000</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-1788 - Python","date":"February 17, 2021"}}},"pageContext":{"slug":"/Algorithm/BOJ-1788-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-1939-Python/"},"frontmatter":{"title":"BOJ-1939 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-13699-Python/"},"frontmatter":{"title":"BOJ-13699 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}