{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/프로그래머스-가장큰정사각형찾기-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"5a4193aa-cf8d-5c89-9fd4-880b29a8a3c4","excerpt":"0과 1로 이루어진 이차원 배열 board가 주어진 후, 해당 배열에서 가장 큰 정사각형의 넓이를 출력하는 문제. 좌표 1, 1부터 해당 값이 0이 아니며, 위, 왼쪽, 왼쪽 위 대각선의 값을 중 제일 작은 값 +1한 것을 저장한다. 그 중 제일 큰 값끼리 곱한 값을 반환하여 풀었다.","html":"<p>0과 1로 이루어진 이차원 배열 board가 주어진 후, 해당 배열에서 가장 큰 정사각형의 넓이를 출력하는 문제. 좌표 1, 1부터 해당 값이 0이 아니며, 위, 왼쪽, 왼쪽 위 대각선의 값을 중 제일 작은 값 +1한 것을 저장한다. 그 중 제일 큰 값끼리 곱한 값을 반환하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">def</span> <span class=\"token function\">solution</span><span class=\"token punctuation\">(</span>board<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    ylen <span class=\"token operator\">=</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>board<span class=\"token punctuation\">)</span>\n    xlen <span class=\"token operator\">=</span> <span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>board<span class=\"token punctuation\">[</span><span class=\"token number\">0</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n    ans <span class=\"token operator\">=</span> <span class=\"token number\">1</span> <span class=\"token keyword\">if</span> board<span class=\"token punctuation\">[</span><span class=\"token number\">0</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 keyword\">else</span> <span class=\"token number\">0</span>\n\n    <span class=\"token keyword\">for</span> y <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> ylen<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">for</span> x <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> xlen<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">if</span> <span class=\"token keyword\">not</span> board<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>\n                <span class=\"token keyword\">continue</span>\n\n            up <span class=\"token operator\">=</span> board<span class=\"token punctuation\">[</span>y<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span>\n            down <span class=\"token operator\">=</span> board<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n            diag <span class=\"token operator\">=</span> board<span class=\"token punctuation\">[</span>y<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span>\n            <span class=\"token keyword\">if</span> up <span class=\"token operator\">></span> <span class=\"token number\">0</span> <span class=\"token keyword\">and</span> down <span class=\"token operator\">></span> <span class=\"token number\">0</span> <span class=\"token keyword\">and</span> diag <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">:</span>\n                board<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> <span class=\"token builtin\">min</span><span class=\"token punctuation\">(</span>up<span class=\"token punctuation\">,</span> down<span class=\"token punctuation\">,</span> diag<span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token number\">1</span>\n                ans <span class=\"token operator\">=</span> <span class=\"token builtin\">max</span><span class=\"token punctuation\">(</span>ans<span class=\"token punctuation\">,</span> board<span class=\"token punctuation\">[</span>y<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>x<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">return</span> ans <span class=\"token operator\">*</span> ans</code></pre></div>","frontmatter":{"title":"프로그래머스-가장큰정사각형찾기 - Python","date":"February 24, 2021"}}},"pageContext":{"slug":"/Algorithm/프로그래머스-가장큰정사각형찾기-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-10211-Python/"},"frontmatter":{"title":"BOJ-10211 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/프로그래머스-H-index-Python/"},"frontmatter":{"title":"프로그래머스-H-index - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}