{"componentChunkName":"component---src-templates-post-template-jsx","path":"/algo/posts/2021-03-29--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":"5b8aa7f2-b035-5828-a3ab-b2f68dbee7e0","html":"<p><span class=\"title__sub1\">#. 테스트 문제</span></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/52a0176884980d90e7750632908ab257/d4377/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: 66.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAABY0lEQVQ4y51T23KCUAzkTzoda72DIhexomgVFFTUUaz1/79jmwQv1OrI9GHnhEPYbMhGcedHOLMvVD4i1HqMOeruQsBxo79MY3eeeZfGt7n1/gKKNlxDH2/hhN/oRkeYfoLGYAnNW0kCn+ogljsm51g9xdfn+JKrWP4OrdEaRctH2Znh3Q5QMMaCN3PyK84DIbROqs7VuVKTlGvDFRXbkJJYCuWBUumGQsCt6p8bNEktx8ZkS9ihSv+11JlKMnfxlLAXHWAHO0l+hjykikFttmhCLzUXDSdE1fTxqnppws3HuRSWDBqGGaBkTARlIuS74j/ILi33l0fooxUKNCX52L7f7iNk3ytVMjQPxZ7uYZPBLTpNmnyH42BP50FM+8g6t//2QmgGyYksQZuMzs8cM9hCvA1Zg5/xVyFV521hhaymTVZhEnuaKmQwUXYNs7jbsurFqSrZmo2APajLXUJ7HuZu+Qd4N7bq2vQgOgAAAABJRU5ErkJggg=='); 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/52a0176884980d90e7750632908ab257/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/52a0176884980d90e7750632908ab257/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/52a0176884980d90e7750632908ab257/e85cb/001-01.png 480w,\n/devHistoryBlog/static/52a0176884980d90e7750632908ab257/d9199/001-01.png 960w,\n/devHistoryBlog/static/52a0176884980d90e7750632908ab257/d4377/001-01.png 1294w\"\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\">1. 결과</span> </p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">정확성  테스트\n테스트 1 〉\t통과 (0.18ms, 52.1MB)\n테스트 2 〉\t통과 (0.37ms, 51.6MB)\n테스트 3 〉\t통과 (1.59ms, 52.6MB)\n테스트 4 〉\t통과 (1.85ms, 53.5MB)\n테스트 5 〉\t통과 (2.08ms, 53.1MB)\n테스트 6 〉\t통과 (0.25ms, 52MB)\n테스트 7 〉\t통과 (1.46ms, 53.2MB)\n테스트 8 〉\t통과 (1.42ms, 53.2MB)\n테스트 9 〉\t통과 (0.24ms, 52.1MB)\n테스트 10 〉\t통과 (1.65ms, 52.6MB)\n\n효율성  테스트\n테스트 1 〉\t통과 (31.70ms, 77MB)\n테스트 2 〉\t통과 (26.11ms, 66.7MB)\n테스트 3 〉\t통과 (34.24ms, 75MB)\n테스트 4 〉\t통과 (33.67ms, 67.5MB)\n테스트 5 〉\t통과 (22.44ms, 66MB)</code></pre></div>\n<br>\n<p><span class=\"title__sub2\">2. 풀이</span></p>\n<ul>\n<li>input과 output의 배열 길이가 동일하면 미리 공간을 만들어 놓자</li>\n<li>stack 에는 {index,값} 쌍이 들어가는게 아니라 index 값만 들어가는게 포인트</li>\n<li>값은 price[index] 로 접근할 수 있다.</li>\n<li>prices 배열을 순차적으로 방문하면서 현재 price 값이 stack의 마지막 값보다 작은 경우 pop을 하여 output 배열에 넣어주는게 중요!\n</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\">Assertions</span><span class=\"token punctuation\">.</span><span class=\"token function\">assertArrayEquals</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 number\">4</span><span class=\"token punctuation\">,</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">0</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> 주식가격<span class=\"token function\">_solution</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 number\">1</span><span class=\"token punctuation\">,</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span><span class=\"token number\">3</span><span class=\"token punctuation\">,</span><span class=\"token number\">2</span><span class=\"token punctuation\">,</span><span class=\"token number\">3</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 punctuation\">[</span><span class=\"token punctuation\">]</span> 주식가격<span class=\"token function\">_solution</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> prices<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token class-name\">Stack</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">Integer</span><span class=\"token punctuation\">></span></span> stack <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Stack</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> result <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token keyword\">int</span><span class=\"token punctuation\">[</span>prices<span class=\"token punctuation\">.</span>length<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n\n    <span class=\"token keyword\">int</span> totalTime <span class=\"token operator\">=</span> prices<span class=\"token punctuation\">.</span>length<span class=\"token operator\">-</span><span class=\"token number\">1</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>totalTime<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 keyword\">while</span><span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>stack<span class=\"token punctuation\">.</span><span class=\"token function\">isEmpty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&amp;&amp;</span> prices<span class=\"token punctuation\">[</span>stack<span class=\"token punctuation\">.</span><span class=\"token function\">peek</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">></span> prices<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n            <span class=\"token keyword\">int</span> popIdx <span class=\"token operator\">=</span> stack<span class=\"token punctuation\">.</span><span class=\"token function\">pop</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n            result<span class=\"token punctuation\">[</span>popIdx<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> i <span class=\"token operator\">-</span> popIdx<span class=\"token punctuation\">;</span>\n        <span class=\"token punctuation\">}</span>\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span>i<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n\n    <span class=\"token keyword\">while</span><span class=\"token punctuation\">(</span><span class=\"token operator\">!</span>stack<span class=\"token punctuation\">.</span><span class=\"token function\">isEmpty</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 keyword\">int</span> popIdx <span class=\"token operator\">=</span> stack<span class=\"token punctuation\">.</span><span class=\"token function\">pop</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n        result<span class=\"token punctuation\">[</span>popIdx<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> totalTime <span class=\"token operator\">-</span> popIdx<span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<hr>\n<p><span class=\"title__sub2\">배웠다</span></p>\n<ul>\n<li>input과 output의 배열 길이가 동일하면 미리 공간을 만들어 놓자!</li>\n<li>input을 활용할 수 있는지 확인하자! (stack에 index만 들어가는 것처럼)</li>\n</ul>","fields":{"tagSlugs":["/tags/stack/"],"slug":"/algo/posts/2021-03-29--001"},"frontmatter":{"title":"[Pogrammers] 주식가격","tags":["Stack"],"date":"2021-03-29","description":""}}},"pageContext":{"slug":"/algo/posts/2021-03-29--001"}},"staticQueryHashes":[]}