{"componentChunkName":"component---src-templates-post-template-jsx","path":"/algo/posts/2021-04-01--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":"958ca4dc-6594-585e-bf10-8c127ef7a76d","html":"<p><span class=\"title__sub1\">#. 테스트 문제</span></p>\n<ul>\n<li>input n개의 괄호로 나올 수 있는 모든 모양을 출력하는 문제</li>\n<li>input : 3</li>\n<li>output : [”((()))”, ”(()())”, ”(())()”, ”()(())”, ”()()()”]</li>\n</ul>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/devHistoryBlog/static/415bd6f08e4d36d0e40daa246f0fc665/d3b46/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: 65.83333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAABYlAAAWJQFJUiTwAAACq0lEQVQ4y11SWXPTMBjM3+eVFx6ZAWaAgWdKp8NAL3I3SY+0pfRImqRO7diyLMmSjyxrNxyDZj5LlvStvm93G+BYr0t8OLjFm29XeLd/jddfrzAcDfDz6hyz+RSr0EccRxCMSARchwijoP5PrYBOekjkFUanP9B4AgQuZxrje4ULzmcTicn1Haa3UyznHoJVTFDO4YRAGkJmXAuuFaw1MOq4BhyeXKJRga2rD6r4O4pEIAkD5KymGrm5Q3izAylPkGeLza01yrKsV1mW4+h4vKmwSsgLFGmKVCnkqUHpLMo8Y9g6oRQSycFnhN5LtriH/0eWZTganaFRFgVfIVjm4MjL8n6KNIpgkjMkagy+U1PiXAoZSzw+JlBmDW0KmAywvgfX+gJLwN7gBA0brRB5HrzpHJmUzC7rit14CHm3Bd9/hczdIdWA0imsSaEIrBkq1izgPZT3vBanN2TLuVFQ0T38WRPO+PhNwdrzYRdNhMuPiMUpKblBLifcmyHwFvDuuRYr7nmsIYFTCXqd/hOHZR5RxQuY2S2KkxHYJZJYsEVTg2f2Bol4Bnv+FvnF5UYPdlLksHEMf/mIh/kc7d09NHSSwJiSJU+wvH0Bu2yRrxIijOAHktYQtZKZMVBSISsqZf9xA8VzmryS93azQw6prCY3qZ7RsF2sxALOZqj2k8rMIiEoz1NHIXKa2ZFXCZdSfSI/WY5dUL1mb1D5cE3SHY2pyRNoYs1EV1elaaGC1omDAKtHepJ8r6m2opAyXMGyu1yrP7b53iaHVWJB6xij6UFJ1ysEfsQK0hq05GOCIiwpQriYI+cdLUjHw4KCeUjJdVVUai0OWl00ukcjdI+GaPcH6DZb2Pm0he2tbRzu7qPX7qDDsx6jPxjVc5f36v9NdPsMYnTY7u5hC78Acc/TAMKTsyoAAAAASUVORK5CYII='); 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/415bd6f08e4d36d0e40daa246f0fc665/d9199/001-01.png\"\n        srcset=\"/devHistoryBlog/static/415bd6f08e4d36d0e40daa246f0fc665/8ff5a/001-01.png 240w,\n/devHistoryBlog/static/415bd6f08e4d36d0e40daa246f0fc665/e85cb/001-01.png 480w,\n/devHistoryBlog/static/415bd6f08e4d36d0e40daa246f0fc665/d9199/001-01.png 960w,\n/devHistoryBlog/static/415bd6f08e4d36d0e40daa246f0fc665/07a9c/001-01.png 1440w,\n/devHistoryBlog/static/415bd6f08e4d36d0e40daa246f0fc665/d3b46/001-01.png 1690w\"\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=\"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 function\">generatedParentheses</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 class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">{</span><span class=\"token string\">\"((()))\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"(()())\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"(())()\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"()(())\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"()()()\"</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token function\">generatedParentheses_solution</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>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> <span class=\"token function\">generatedParentheses_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 class-name\">List</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">></span></span> result <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ArrayList</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 function\">dfs</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">,</span> <span class=\"token string\">\"\"</span><span class=\"token punctuation\">,</span> n<span class=\"token punctuation\">,</span> n<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">return</span> result<span class=\"token punctuation\">.</span><span class=\"token function\">stream</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">toArray</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token operator\">::</span><span class=\"token keyword\">new</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">private</span> <span class=\"token keyword\">void</span> <span class=\"token function\">dfs</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">List</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">></span></span> result<span class=\"token punctuation\">,</span> <span class=\"token class-name\">String</span> str<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> left<span class=\"token punctuation\">,</span> <span class=\"token keyword\">int</span> right<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>left <span class=\"token operator\">&lt;</span> <span class=\"token number\">0</span> <span class=\"token operator\">||</span> left <span class=\"token operator\">></span> right<span class=\"token punctuation\">)</span>\n        <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n    \n    <span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>left <span class=\"token operator\">==</span> <span class=\"token number\">0</span> <span class=\"token operator\">&amp;&amp;</span> right <span class=\"token operator\">==</span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        result<span class=\"token punctuation\">.</span><span class=\"token function\">add</span><span class=\"token punctuation\">(</span>str<span class=\"token punctuation\">.</span><span class=\"token function\">toString</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\">return</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span>\n    \n    <span class=\"token function\">dfs</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">,</span> str<span class=\"token operator\">+</span><span class=\"token punctuation\">(</span><span class=\"token string\">'('</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> left<span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> right<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token function\">dfs</span><span class=\"token punctuation\">(</span>result<span class=\"token punctuation\">,</span> str<span class=\"token operator\">+</span><span class=\"token punctuation\">(</span><span class=\"token string\">')'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> left<span class=\"token punctuation\">,</span> right<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 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/back-tracking/"],"slug":"/algo/posts/2021-04-01--001"},"frontmatter":{"title":"[참고] GenerateParentheses - 괄호 생성","tags":["back-tracking"],"date":"2021-04-01","description":"백트랙킹"}}},"pageContext":{"slug":"/algo/posts/2021-04-01--001"}},"staticQueryHashes":[]}