{"componentChunkName":"component---src-templates-post-template-jsx","path":"/algo/posts/2021-03-26--001","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"3e1fe5b7-d28f-56fe-8500-e42e58ea8f4b","html":"<p><span class=\"title__sub1\">#. 테스트 문제</span></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/aabb19deec86e71c77ab01885a244213/c23ad/001-01.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 960px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 62.5%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABJ0AAASdAHeZh94AAABjklEQVQ4y51TiVLCUAzs//+YMM4IYwGBcvWGnlCwlKNd30ZaUVEZO81smkk3L8k+zXM8zGdz2JaNiTGB7/liwTKAuTAxm86wSTdApd5zhapUTokfTeMPS38Jx3aRxqkQWwurIShPpSCTa/yVcNAfoN1qy+mMkYHOUweu4zaEdWLjn/8gjIIIxthAt9PFYr6QU0Zh1JDUdvcJ4zAWwn6vLzMLg/Am4b2mjUdjDF+GcNUMV8uVkHNR8tSVqyu8tvL7t2aZlszMsR0kUQLP9cSKfYHT4YTj4YjD/iA+kXYsVKy4xBQWeYH8NZe4EHLLvu8L0tbpWuaZxAlC1b4UUz7lRD9YBWKMEZk7Go4QRzE0VvjUXj386p8tn45nNKS3Hi72osW7ltJ6eERP17FO1sg2mWyYraTJu3zyXf7RwfXJLsW+oqY/6zCUqKeTqcyBG+dV5Pb5bZpKSqtQClAFnNM228o8OWsitUzcZTu1FHXNeN0oG+qQQ/ddX2KO5UicOYxzgYxRBebchG3agowTmfsG6gXk5Q3XHXQAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"001 01\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/aabb19deec86e71c77ab01885a244213/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/aabb19deec86e71c77ab01885a244213/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/aabb19deec86e71c77ab01885a244213/e85cb/001-01.png 480w,\n/devHistoryBlog/static/aabb19deec86e71c77ab01885a244213/d9199/001-01.png 960w,\n/devHistoryBlog/static/aabb19deec86e71c77ab01885a244213/c23ad/001-01.png 1193w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<hr>\n<p><span class=\"title__sub1\">#. 결과 및 풀이</span></p>\n<p><span class=\"title__sub2\">2. 풀이</span>\n- 해당 문제는 모든 행/열의 합을 구할 때, n 번째 loop에서 n 번째 행/열의 값을 모두 구하는게 포인트다.\n- 대각선을 구할때는 arr[n][n], arr[n][n-1-1] 로 해야하는것만 기억하면 될 것 같다.</p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">  <span class=\"token annotation punctuation\">@Test</span>\n  <span class=\"token keyword\">void</span> 격자판_최대합<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token class-name\">Assert</span><span class=\"token punctuation\">.</span><span class=\"token function\">assertEquals</span><span class=\"token punctuation\">(</span>\n      <span class=\"token number\">155</span><span class=\"token punctuation\">,</span>\n      격자판_최대합<span class=\"token function\">_solution</span><span class=\"token punctuation\">(</span><span class=\"token number\">5</span><span class=\"token punctuation\">,</span> <span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><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><span class=\"token punctuation\">{</span><span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token number\">13</span><span class=\"token punctuation\">,</span> <span class=\"token number\">10</span><span class=\"token punctuation\">,</span> <span class=\"token number\">12</span><span class=\"token punctuation\">,</span> <span class=\"token number\">15</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token number\">12</span><span class=\"token punctuation\">,</span> <span class=\"token number\">39</span><span class=\"token punctuation\">,</span> <span class=\"token number\">30</span><span class=\"token punctuation\">,</span> <span class=\"token number\">23</span><span class=\"token punctuation\">,</span> <span class=\"token number\">11</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token number\">11</span><span class=\"token punctuation\">,</span> <span class=\"token number\">25</span><span class=\"token punctuation\">,</span> <span class=\"token number\">50</span><span class=\"token punctuation\">,</span> <span class=\"token number\">53</span><span class=\"token punctuation\">,</span> <span class=\"token number\">15</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token number\">19</span><span class=\"token punctuation\">,</span> <span class=\"token number\">27</span><span class=\"token punctuation\">,</span> <span class=\"token number\">29</span><span class=\"token punctuation\">,</span> <span class=\"token number\">37</span><span class=\"token punctuation\">,</span> <span class=\"token number\">27</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">{</span><span class=\"token number\">19</span><span class=\"token punctuation\">,</span> <span class=\"token number\">13</span><span class=\"token punctuation\">,</span> <span class=\"token number\">30</span><span class=\"token punctuation\">,</span> <span class=\"token number\">13</span><span class=\"token punctuation\">,</span> <span class=\"token number\">19</span><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  <span class=\"token punctuation\">}</span>\n\n  <span class=\"token keyword\">int</span> 격자판_최대합<span class=\"token function\">_solution</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> n<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> arr<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\n    <span class=\"token keyword\">int</span> maxSum <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> sumLeftDiagonal <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> sumRightDiagonal <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">&lt;</span>n<span class=\"token punctuation\">;</span> i<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token comment\">// 왼쪽,오른쪽 대각선의 합을 구하기 위해 따로 loop를 돌리지 말고</span>\n      <span class=\"token comment\">// 첫번째 loop에서 구하도록 했다.</span>\n      sumLeftDiagonal <span class=\"token operator\">+=</span> arr<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n      <span class=\"token comment\">// 오른쪽 대각선</span>\n      sumRightDiagonal <span class=\"token operator\">+=</span> arr<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>n<span class=\"token operator\">-</span><span class=\"token number\">1</span><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\">int</span> sumRow <span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> sumCol <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n\n      <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> j<span class=\"token operator\">=</span><span class=\"token number\">0</span><span class=\"token punctuation\">;</span> j<span class=\"token operator\">&lt;</span>n<span class=\"token punctuation\">;</span> j<span class=\"token operator\">++</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token comment\">// n번쨰의 row와 col의 합을 한꺼번에 구한다.</span>\n        sumRow <span class=\"token operator\">+=</span> arr<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 punctuation\">;</span>\n        sumCol <span class=\"token operator\">+=</span> arr<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span><span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n      maxSum <span class=\"token operator\">=</span> <span class=\"token class-name\">Math</span><span class=\"token punctuation\">.</span><span class=\"token function\">max</span><span class=\"token punctuation\">(</span>maxSum<span class=\"token punctuation\">,</span> sumRow<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      maxSum <span class=\"token operator\">=</span> <span class=\"token class-name\">Math</span><span class=\"token punctuation\">.</span><span class=\"token function\">max</span><span class=\"token punctuation\">(</span>maxSum<span class=\"token punctuation\">,</span> sumCol<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n    maxSum <span class=\"token operator\">=</span> <span class=\"token class-name\">Math</span><span class=\"token punctuation\">.</span><span class=\"token function\">max</span><span class=\"token punctuation\">(</span>sumLeftDiagonal<span class=\"token punctuation\">,</span> maxSum<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    maxSum <span class=\"token operator\">=</span> <span class=\"token class-name\">Math</span><span class=\"token punctuation\">.</span><span class=\"token function\">max</span><span class=\"token punctuation\">(</span>sumRightDiagonal<span class=\"token punctuation\">,</span> maxSum<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">return</span> maxSum<span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<hr>\n<h2>배웠다</h2>","fields":{"tagSlugs":["/tags/arrays/"],"slug":"/algo/posts/2021-03-26--001"},"frontmatter":{"title":"[참고] 격자판 최대 합","tags":["Arrays"],"date":"2021-03-26","description":"행/열/대각선의 최대 합 찾기"}}},"pageContext":{"slug":"/algo/posts/2021-03-26--001"}},"staticQueryHashes":[]}