{"componentChunkName":"component---src-templates-post-template-jsx","path":"/algo/posts/2021-03-26--002","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":"87dc01ec-bbbf-58ae-a4b6-e66c711ecfea","html":"<p><span class=\"title__sub1\">#. 테스트 문제</span></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/9672e7896d15ff88d13938e313d041f7/081d5/001-02.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: 53.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABJ0AAASdAHeZh94AAAA8klEQVQoz6WR2RKCMAxF+zEI6uCCK+i4omJ1FPVB4f8/JPbWUovD4PZwpmkCt8kNC/iN7GFE1YCTE2xl7PhbCXKaEafaaCfOnb5nNeQB/mW9zZWGPCGfp+JMjTih5iyWtOYnai3AWaJzirbIAYizxvRIGfXxXnfn+BFZ/fVXVAYbYq4QgjpaRqIMjARe7yasKVp2J4ecd2XYOAMVK/GcYHt5lv48/Ypz3kjf1L2hvPPCi/zOFMy6Zl1R1BsVYzs+fxQLXv9oZCwCr2abw/jvvCyDeWJcq7eiirEt+x/BandF7iCSIkUjfAuzOiEBdGj68yt3NjdtbSHRdwoAAAAASUVORK5CYII='); 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 02\"\n        title=\"\"\n        src=\"/devHistoryBlog/static/9672e7896d15ff88d13938e313d041f7/d9199/001-02.png\"\n        srcset=\"/devHistoryBlog/static/9672e7896d15ff88d13938e313d041f7/8ff5a/001-02.png 240w,\n/devHistoryBlog/static/9672e7896d15ff88d13938e313d041f7/e85cb/001-02.png 480w,\n/devHistoryBlog/static/9672e7896d15ff88d13938e313d041f7/d9199/001-02.png 960w,\n/devHistoryBlog/static/9672e7896d15ff88d13938e313d041f7/081d5/001-02.png 1264w\"\n        sizes=\"(max-width: 960px) 100vw, 960px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p><span class=\"title__sub2\">주어진 코드</span></p>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">class</span> <span class=\"token class-name\">Solution</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">public</span> <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 punctuation\">{</span>\n        <span class=\"token keyword\">int</span> answer <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">return</span> answer<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<hr>\n<p><span class=\"title__sub1\">#. 결과 및 풀이</span>\n<span class=\"title__sub2\">1. 결과</span> </p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">정확성  테스트\n테스트 1 〉\t통과 (0.01ms, 52.5MB)\n테스트 2 〉\t통과 (0.08ms, 52.1MB)\n테스트 3 〉\t통과 (0.06ms, 52.2MB)\n테스트 4 〉\t통과 (0.07ms, 52.4MB)\n테스트 5 〉\t통과 (0.05ms, 52.5MB)\n테스트 6 〉\t통과 (0.02ms, 52.4MB)\n테스트 7 〉\t통과 (0.08ms, 52.7MB)\n테스트 8 〉\t통과 (0.04ms, 52.6MB)\n테스트 9 〉\t통과 (0.02ms, 51.8MB)\n테스트 10 〉\t통과 (0.09ms, 53.8MB)\n테스트 11 〉\t통과 (0.10ms, 51.9MB)\n테스트 12 〉\t통과 (0.07ms, 52.4MB)\n테스트 13 〉\t통과 (0.09ms, 52.9MB)\n테스트 14 〉\t통과 (0.05ms, 53.1MB)\n\n효율성  테스트\n테스트 1 〉\t통과 (0.85ms, 53.2MB)\n테스트 2 〉\t통과 (0.55ms, 52.6MB)\n테스트 3 〉\t통과 (0.64ms, 52.7MB)\n테스트 4 〉\t통과 (0.62ms, 52.6MB)\n테스트 5 〉\t통과 (0.74ms, 52.4MB)\n테스트 6 〉\t통과 (3.08ms, 52.3MB)</code></pre></div>\n<br>\n<p><span class=\"title__sub2\">2. 풀이</span></p>\n<ul>\n<li>연속된 자연수의 합이 N 일 경우, 연속된 자연수의 최대수는 (n/2)+1 이다.</li>\n<li>ex) 15일 경우 연속된 자연수의 최대수는 8 (8+7)</li>\n</ul>\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><span class=\"token number\">4</span><span class=\"token punctuation\">,</span> 숫자의_표현<span class=\"token function\">_solution</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>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">public</span> <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 punctuation\">{</span>\n    <span class=\"token comment\">// 데이터 초기화</span>\n    <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> arr <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span>n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\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>\n      arr<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n    \n    <span class=\"token keyword\">int</span> caseCnt <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    \n    <span class=\"token keyword\">int</span> leftIdx <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">,</span> rightIdx <span class=\"token operator\">=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span> sum <span class=\"token operator\">=</span> arr<span class=\"token punctuation\">[</span>leftIdx<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// 0번째 값으로 시작한다.</span>\n    \n    <span class=\"token keyword\">while</span><span class=\"token punctuation\">(</span>leftIdx <span class=\"token operator\">&lt;</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 comment\">// sum이 작은 경우 오른쪽 이동 후 sum에 합치기</span>\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">&lt;</span> n <span class=\"token operator\">&amp;&amp;</span> rightIdx <span class=\"token operator\">&lt;</span> n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n        sum <span class=\"token operator\">+=</span> arr<span class=\"token punctuation\">[</span><span class=\"token operator\">++</span>rightIdx<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    \n      <span class=\"token comment\">// sum이 큰 경우 왼쪽 이동 후 sum에서 뺴기</span>\n      <span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>sum <span class=\"token operator\">></span> n<span class=\"token punctuation\">)</span>\n        sum <span class=\"token operator\">-=</span> arr<span class=\"token punctuation\">[</span>leftIdx<span class=\"token operator\">++</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    \n      <span class=\"token comment\">// 같은 경우 cnt++, 오른쪽/왼쪽 모두 이동 후 sum 계산</span>\n      <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n        caseCnt<span class=\"token operator\">++</span><span class=\"token punctuation\">;</span>\n        <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>rightIdx <span class=\"token operator\">&lt;</span> n<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n          sum <span class=\"token operator\">+=</span> arr<span class=\"token punctuation\">[</span><span class=\"token operator\">++</span>rightIdx<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n        sum <span class=\"token operator\">-=</span> arr<span class=\"token punctuation\">[</span>leftIdx<span class=\"token operator\">++</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n    <span class=\"token punctuation\">}</span>\n    \n    <span class=\"token comment\">//자기 자신이 있으므로 +1</span>\n    <span class=\"token keyword\">return</span> caseCnt<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<hr>\n<p><span class=\"title__sub1\">#. 배웠다</span></p>\n<ul>\n<li>연속된 자연수의 합이 N 일 경우, 연속된 자연수의 최대수는 (n/2)+1 !!!!</li>\n</ul>","fields":{"tagSlugs":null,"slug":"/algo/posts/2021-03-26--002"},"frontmatter":{"title":"[PROGRAMMERS] 숫자의 표현","tags":null,"date":"2021-03-26","description":"연속된 자연수의 합"}}},"pageContext":{"slug":"/algo/posts/2021-03-26--002"}},"staticQueryHashes":[]}