{
    "componentChunkName": "component---src-templates-post-template-tsx",
    "path": "/20220710/stack/",
    "result": {"data":{"allMarkdownRemark":{"edges":[{"node":{"html":"<h1>스택(Stack)이란?</h1>\n<p>데이터의 삽입과 삭제가 한쪽 끝에서만 이루어져 데이터를 쌓는 선형리스트 자료구조이다.</p>\n<h1>Stack 특징</h1>\n<ul>\n<li>가장 먼저 들어간 값이 가장 나중에 나오는 LIFO(Last In First Out) 구조</li>\n<li>스택이 꽉 차있을때 자료를 넣으려 할때 스택 오버플로우(Stack Overflow)가 발생한다.</li>\n<li>스택이 비어있을 때 자료를 꺼내려 할때 스택 언더플로우(Stack Underflow)가 발생한다.</li>\n</ul>\n<h1>Stack 사용법</h1>\n<h2>1. Stack 선언하기</h2>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token class-name\">Stack</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</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></code></pre></div>\n<h2>2. Stack 값 추가(Push)</h2>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token class-name\">Stack</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</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>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"A\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">//데이터 삽입</span>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"B\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"C\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2><span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \">\n      <a class=\"gatsby-resp-image-link\" href=\"/static/76ecac890d9eb45fe1b805e040089f5c/f7f62/stack1.png\" style=\"display: block\" target=\"_blank\" rel=\"noopener\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 39.583333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABPElEQVQoz11SPU8DMQy9f4/4CUwMiA2QGJgYADHShakVQkjlo7S9Xi/X5i6fzkN2rr0WS4kd5/nZTlygl5QSDm0iwqGw7xAD/D9nTEE0XAhRAqxzaJqmJ84+rTXathVcpAQfApRqEELsMZmjcIGguyCHbRdgXERrIoz1sNZDmwjnCZvWwzmL1uwwBIocR4IPMXdU8MaEXM2OmAl8yIttls712kbRuu0wGpd4fi2x7fzQMm+cVUC9ti5KIC8jRAlv0wo3T98YTSrBcKvndx84uRijVFZ83LZUqLSXslmz1GqL68dPXD18yTOwTKYKp5dj3L/MczAlSXB2+46qcUOFbKxWFX5mv1iv6/4CWK5qLMr1/geZYDZfojNu76vVBotldTQFQhhjRAhB9DADhJToaKSIYs62HxNConiE+QP9um4XPqL/dQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"></span>\n  <picture>\n          <source srcset=\"/static/76ecac890d9eb45fe1b805e040089f5c/a59e9/stack1.webp 192w,\n/static/76ecac890d9eb45fe1b805e040089f5c/0ca9f/stack1.webp 384w,\n/static/76ecac890d9eb45fe1b805e040089f5c/dc9b9/stack1.webp 768w,\n/static/76ecac890d9eb45fe1b805e040089f5c/d2558/stack1.webp 1096w\" sizes=\"(max-width: 768px) 100vw, 768px\" type=\"image/webp\">\n          <source srcset=\"/static/76ecac890d9eb45fe1b805e040089f5c/3b721/stack1.png 192w,\n/static/76ecac890d9eb45fe1b805e040089f5c/66595/stack1.png 384w,\n/static/76ecac890d9eb45fe1b805e040089f5c/fe486/stack1.png 768w,\n/static/76ecac890d9eb45fe1b805e040089f5c/f7f62/stack1.png 1096w\" sizes=\"(max-width: 768px) 100vw, 768px\" type=\"image/png\">\n          <img class=\"gatsby-resp-image-image\" src=\"/static/76ecac890d9eb45fe1b805e040089f5c/fe486/stack1.png\" alt=\"stack1\" title=\"stack1\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\">\n        </picture>\n  </a>\n    </span></h2>\n<h2>3. Stack 값 삭제(Pop)</h2>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">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> <span class=\"token comment\">//데이터 삭제</span></code></pre></div>\n<h2><span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \">\n      <a class=\"gatsby-resp-image-link\" href=\"/static/c15384869c8679641ac522f4dcb52003/af1d1/stack2.png\" style=\"display: block\" target=\"_blank\" rel=\"noopener\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 45.3125%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAYAAAAywQxIAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABSklEQVQoz31STU8CMRTcn64nD/4DD3IgGvTmwcQoEBMPHpRoTFSMgeyCQhezQdiy7XbbjmlLl101TNKP10znzWtfAABaazuq+80AlNKQUmIb18eBDwzMxWrskXMGStNS1F+uwseBmViuQNnGwTwVEIXCggokC444oUiWOSgrkHGJbyosjwtVckuHbqPwEaeIyAoRoWC5Ezdrtxej1R6hHy1KNz65lNomqJYfOKcSt08T7B+/4egyRLHOyHOJ4SS1YiRhuH6Y4bQbYUSWGMeZNcCFrJds3s3g8X2OveYrmhdhWYIRbJwPsXP4jF4/seVF0yVuHsbYbbzg4GyAXPxyqNbKg88UrasQnXuCQjpBs3Z7BK12aJ16GGcnnRDtu2nt/azDzW9pxGQCzrIaYUVTfM2mrgu0hjPguCxb/fnxYN1BtcNqX/3XJtu4Pzguth/e5CShAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"></span>\n  <picture>\n          <source srcset=\"/static/c15384869c8679641ac522f4dcb52003/a59e9/stack2.webp 192w,\n/static/c15384869c8679641ac522f4dcb52003/0ca9f/stack2.webp 384w,\n/static/c15384869c8679641ac522f4dcb52003/dc9b9/stack2.webp 768w,\n/static/c15384869c8679641ac522f4dcb52003/7bbdd/stack2.webp 919w\" sizes=\"(max-width: 768px) 100vw, 768px\" type=\"image/webp\">\n          <source srcset=\"/static/c15384869c8679641ac522f4dcb52003/3b721/stack2.png 192w,\n/static/c15384869c8679641ac522f4dcb52003/66595/stack2.png 384w,\n/static/c15384869c8679641ac522f4dcb52003/fe486/stack2.png 768w,\n/static/c15384869c8679641ac522f4dcb52003/af1d1/stack2.png 919w\" sizes=\"(max-width: 768px) 100vw, 768px\" type=\"image/png\">\n          <img class=\"gatsby-resp-image-image\" src=\"/static/c15384869c8679641ac522f4dcb52003/fe486/stack2.png\" alt=\"stack2\" title=\"stack2\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\">\n        </picture>\n  </a>\n    </span></h2>\n<h2>4. Stack의 최상단(Top) 값 확인</h2>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\">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 comment\">//데이터 최상단(TOP) 값 확인</span></code></pre></div>\n<h2><span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \">\n      <a class=\"gatsby-resp-image-link\" href=\"/static/59d7c6c50e95a450937cf93f6e0d4968/e6e97/stack3.png\" style=\"display: block\" target=\"_blank\" rel=\"noopener\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 50%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA9UlEQVQoz52RzUrDQBDH8zI+mhfvvoUeeugbeBEEj4II7a05C1XEQ/egUulHkmZTsyY7P2HTDU3bpMWB/YCZ+c38ZwI6TETqt/pKa4y34FBAE+QTBAuYVGHG5+QvF9jfaA8adHdXBcbRksVi6YB5NsWoHrnqYwt9HLjdXZwaTAklsFoLiTZY8f3+Q/KPEbLVJ1a/ksTfbo4iFqRwZ7t4p2QvdxYVqNEls6czPp77G19ZFz0JWHXhLifrfvDO9U3IY6ic31rZWRbdknfneDf84up2wkM4bQDbrBXok+aRZvw2IdH5wSWcBGwkimWdpfVeZTOKNuAfPQkPiwVLFqQAAAAASUVORK5CYII='); background-size: cover; display: block;\"></span>\n  <picture>\n          <source srcset=\"/static/59d7c6c50e95a450937cf93f6e0d4968/a59e9/stack3.webp 192w,\n/static/59d7c6c50e95a450937cf93f6e0d4968/0ca9f/stack3.webp 384w,\n/static/59d7c6c50e95a450937cf93f6e0d4968/dc9b9/stack3.webp 768w,\n/static/59d7c6c50e95a450937cf93f6e0d4968/97885/stack3.webp 864w\" sizes=\"(max-width: 768px) 100vw, 768px\" type=\"image/webp\">\n          <source srcset=\"/static/59d7c6c50e95a450937cf93f6e0d4968/3b721/stack3.png 192w,\n/static/59d7c6c50e95a450937cf93f6e0d4968/66595/stack3.png 384w,\n/static/59d7c6c50e95a450937cf93f6e0d4968/fe486/stack3.png 768w,\n/static/59d7c6c50e95a450937cf93f6e0d4968/e6e97/stack3.png 864w\" sizes=\"(max-width: 768px) 100vw, 768px\" type=\"image/png\">\n          <img class=\"gatsby-resp-image-image\" src=\"/static/59d7c6c50e95a450937cf93f6e0d4968/fe486/stack3.png\" alt=\"stack3\" title=\"stack3\" loading=\"lazy\" decoding=\"async\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\">\n        </picture>\n  </a>\n    </span></h2>\n<h2>5. Stack 기타 메서드</h2>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token class-name\">Stack</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</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>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"A\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"B\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"C\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">size</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>       <span class=\"token comment\">// stack의 크기 출력 : 3</span>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>      <span class=\"token comment\">// stack이 비어있는지 확인 (비어있다면 true 비어있지 않다면 false)</span>\r\nstack<span class=\"token punctuation\">.</span><span class=\"token function\">contains</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"C\"</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// stack에 'C'가 존재하는지 확인 (있다면 true 없다면 false)</span></code></pre></div>\n<h1>Stack 구현 코드</h1>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">import</span> <span class=\"token import\"><span class=\"token namespace\">java<span class=\"token punctuation\">.</span>util<span class=\"token punctuation\">.</span></span><span class=\"token class-name\">EmptyStackException</span></span><span class=\"token punctuation\">;</span>\r\n\r\n<span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">ArrayStack</span> <span class=\"token punctuation\">{</span>\r\n    <span class=\"token keyword\">private</span> <span class=\"token keyword\">int</span> top<span class=\"token punctuation\">;</span>\r\n    <span class=\"token keyword\">private</span> <span class=\"token keyword\">int</span> maxSize<span class=\"token punctuation\">;</span>\r\n    <span class=\"token keyword\">private</span> <span class=\"token class-name\">Object</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> stackArray<span class=\"token punctuation\">;</span>\r\n\r\n    <span class=\"token keyword\">public</span> <span class=\"token class-name\">ArrayStack</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> maxSize<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        top <span class=\"token operator\">=</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\r\n        <span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>maxSize <span class=\"token operator\">=</span> maxSize<span class=\"token punctuation\">;</span>\r\n        stackArray <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Object</span><span class=\"token punctuation\">[</span>maxSize<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n\r\n    <span class=\"token comment\">/**\r\n     * Stack이 비어있는지 체크\r\n     * @return boolean (if stack empty ? true : false)\r\n     */</span>\r\n    <span class=\"token keyword\">private</span> <span class=\"token keyword\">boolean</span> <span class=\"token function\">isEmpty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token keyword\">return</span> top <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n\r\n    <span class=\"token comment\">/**\r\n     * Stack에 객체를 삽입\r\n     * @param data\r\n     */</span>\r\n    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">Object</span> data<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        stackArray<span class=\"token punctuation\">[</span><span class=\"token operator\">++</span>top<span class=\"token punctuation\">]</span> <span class=\"token operator\">=</span> data<span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n\r\n    <span class=\"token comment\">/**\r\n     * Stack의 맨 위에 객체 꺼냄\r\n     * @return Object\r\n     */</span>\r\n    <span class=\"token keyword\">public</span> <span class=\"token class-name\">Object</span> <span class=\"token function\">pop</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token keyword\">if</span><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>\r\n            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"꺼낼 데이터 없음!!!\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n            <span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">EmptyStackException</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        <span class=\"token punctuation\">}</span>\r\n\r\n        <span class=\"token class-name\">Object</span> data <span class=\"token operator\">=</span> stackArray<span class=\"token punctuation\">[</span>top<span class=\"token operator\">--</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\r\n\r\n        <span class=\"token keyword\">return</span> data<span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n\r\n    <span class=\"token comment\">/**\r\n     * Stack에 맨 위에 저장된 객체 반환\r\n     * @return Object\r\n     */</span>\r\n    <span class=\"token keyword\">public</span> <span class=\"token class-name\">Object</span> <span class=\"token function\">peek</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token keyword\">if</span><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>\r\n            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"데이터 없음!!!\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n            <span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">EmptyStackException</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        <span class=\"token punctuation\">}</span>\r\n\r\n        <span class=\"token keyword\">return</span> stackArray<span class=\"token punctuation\">[</span>top<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n\r\n    <span class=\"token keyword\">public</span> <span class=\"token keyword\">void</span> <span class=\"token function\">print</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token keyword\">if</span><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>\r\n            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"스택 비어있음\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        <span class=\"token punctuation\">}</span>\r\n\r\n        <span class=\"token keyword\">for</span><span class=\"token punctuation\">(</span><span class=\"token keyword\">int</span> i <span class=\"token operator\">=</span> top<span class=\"token punctuation\">;</span> i <span class=\"token operator\">>=</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span> i<span class=\"token operator\">--</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n            <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">.</span><span class=\"token function\">format</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"%s번째 data : %s\"</span><span class=\"token punctuation\">,</span> i<span class=\"token operator\">+</span><span class=\"token number\">1</span><span class=\"token punctuation\">,</span> stackArray<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        <span class=\"token punctuation\">}</span>\r\n    <span class=\"token punctuation\">}</span>\r\n\r\n    <span class=\"token keyword\">public</span> <span class=\"token keyword\">static</span> <span class=\"token keyword\">void</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span> args<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\r\n        <span class=\"token class-name\">ArrayStack</span> stack <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ArrayStack</span><span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">print</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token number\">2</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">push</span><span class=\"token punctuation\">(</span><span class=\"token number\">3</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">print</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n        <span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"top : \"</span> <span class=\"token operator\">+</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 punctuation\">;</span>\r\n\r\n        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>\r\n        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>\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">print</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n\r\n        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>\r\n        stack<span class=\"token punctuation\">.</span><span class=\"token function\">print</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\r\n    <span class=\"token punctuation\">}</span>\r\n<span class=\"token punctuation\">}</span></code></pre></div>","frontmatter":{"title":"스택(Stack) 개념 및 구현","summary":"JAVA,자료구조","date":"2022.07.10.","categories":["JAVA"],"thumbnail":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAICAYAAAD5nd/tAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABQUlEQVQoz3VSTUvDQBDtbxe8ehO8Cd68SBUED54sItKDKAX7GdS2JrG0aDbZ790nO0k3reDAy+6bnX07mZkOyDy899ju/7M2Zp/v+jvho5RCyRgdEABwzgnBnPdwzqMoGJTS0ecbsbIsIYSoBckhDITUEFKBcQOlHX5KDc4FKmnApSUobQEYlMJCKFuvUoNLjaLSsM7XGWrjKMAYh0paeqkS9SqVpeyCDd8L9F/XyDeSOG9iQ1JBI/5yIFJbWOtiULoWuO1neBpvYn26dwscnA4wWzLijGv0nr8IUttWsBIGV/cpbh4z2gebLhgOz4bo9pZR8PohxdH5BEkj+M0Uji9mOLlMwKXZCtbFHYw/MUry2ONQgsFojnzNomC6KvAy/IDUrmkMMHnLkMxXcUI6bctdg50xcObPGHnA2/0Y4u29X5euazgPpbe3AAAAAElFTkSuQmCC"},"images":{"fallback":{"src":"/static/c0f0d09814f7931abffc4f78949922b2/e1efb/stack.png","srcSet":"/static/c0f0d09814f7931abffc4f78949922b2/2ca59/stack.png 277w,\n/static/c0f0d09814f7931abffc4f78949922b2/3ee50/stack.png 555w,\n/static/c0f0d09814f7931abffc4f78949922b2/e1efb/stack.png 1109w","sizes":"(min-width: 1109px) 1109px, 100vw"},"sources":[{"srcSet":"/static/c0f0d09814f7931abffc4f78949922b2/6a7cc/stack.webp 277w,\n/static/c0f0d09814f7931abffc4f78949922b2/e009b/stack.webp 555w,\n/static/c0f0d09814f7931abffc4f78949922b2/c0d5e/stack.webp 1109w","type":"image/webp","sizes":"(min-width: 1109px) 1109px, 100vw"}]},"width":1109,"height":423}},"publicURL":"/static/c0f0d09814f7931abffc4f78949922b2/stack.png"}}}}]}},"pageContext":{"slug":"/20220710/stack/"}},
    "staticQueryHashes": []}