{"data":{"site":{"siteMetadata":{"title":"HOME | blackpudding","subtitle":"고생했어. 오늘도.","copyright":"© All rights reserved.","author":{"name":"William JO","github":"blackpudding96"},"disqusShortname":"blackpudding","url":"https://blackpudding.netlify.com"}},"markdownRemark":{"id":"7c7c3c4c-b755-5772-b3b4-40fcbdb2cd89","html":"<h1>5430번 : AC</h1>\n<p>👉 <a href=\"https://www.acmicpc.net/problem/5430\">문제 바로가기</a></p>\n<h2>배경 지식</h2>\n<ul>\n<li><code class=\"language-text\">덱(Deque)</code> : <strong>양쪽 끝</strong>에서 삽입과 삭제가 모두 가능한 자료 구조</li>\n</ul>\n<h2>푼 방법</h2>\n<p>R 함수와 D 함수를 입력 받은 순서 대로 진행해주고 나머지 원소들을 출력해주면 된다. </p>\n<p>여기서 중요한 포인트는 <strong>R 함수를 실행할 때 모든 원소의 순서를 뒤집으면 안된다.</strong> n이 커지고 R 함수가 많을수록 시간복잡도가 늘어나 time out(시간 초과) 날 수 있다. </p>\n<p>그러면 어떻게 이 문제를 해결해야 할까? <strong>덱(deque)을 사용, R 함수를 실행할 때마다 flag 변수로 앞에서 삭제할지, 뒤에서 삭제할지 결정한다.</strong> <strong>배열을 뒤집는 것은 배열의 뒷 부분을 앞으로 보는 것과 같기 때문에</strong> 덱(deque)의 특징이자 장점을 이용하여 앞, 뒤에서 자유롭게 원소를 삭제해나가면 된다.</p>\n<h2>내 정답 코드 (C++)</h2>\n<div class=\"gatsby-highlight\" data-language=\"c\"><pre class=\"language-c\"><code class=\"language-c\"><span class=\"token macro property\">#<span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;iostream></span></span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;string></span></span>\n<span class=\"token macro property\">#<span class=\"token directive keyword\">include</span> <span class=\"token string\">&lt;sstream></span></span>\n\ntemplate <span class=\"token operator\">&lt;</span>typename T<span class=\"token operator\">></span>\n<span class=\"token keyword\">struct</span> Node <span class=\"token punctuation\">{</span>\n\tT data<span class=\"token punctuation\">;</span>\n\t<span class=\"token keyword\">struct</span> Node <span class=\"token operator\">*</span>front<span class=\"token punctuation\">;</span>\n\t<span class=\"token keyword\">struct</span> Node <span class=\"token operator\">*</span>rear<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\ntemplate <span class=\"token operator\">&lt;</span>typename T<span class=\"token operator\">></span>\nclass Deque <span class=\"token punctuation\">{</span>\nprivate<span class=\"token punctuation\">:</span>\n\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>head<span class=\"token punctuation\">;</span>\n\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>tail<span class=\"token punctuation\">;</span>\n\t<span class=\"token keyword\">int</span> size<span class=\"token punctuation\">;</span>\n\t\npublic<span class=\"token punctuation\">:</span>\n\t<span class=\"token function\">Deque</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">:</span> <span class=\"token function\">head</span><span class=\"token punctuation\">(</span>nullptr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token function\">tail</span><span class=\"token punctuation\">(</span>nullptr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> <span class=\"token function\">size</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 punctuation\">}</span>\n\t<span class=\"token operator\">~</span><span class=\"token function\">Deque</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>this<span class=\"token operator\">-></span>head <span class=\"token operator\">==</span> nullptr<span class=\"token punctuation\">)</span>\n\t\t\t<span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n\t\t\n\t\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>cur <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">;</span>\n\t\t\n\t\t<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>cur <span class=\"token operator\">!=</span> nullptr<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\tcur <span class=\"token operator\">=</span> cur<span class=\"token operator\">-></span>front<span class=\"token punctuation\">;</span>\n\t\t\tdelete this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">;</span>\n\t\t\tthis<span class=\"token operator\">-></span>tail <span class=\"token operator\">=</span> cur<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t\t\n\t\tthis<span class=\"token operator\">-></span>head <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\t<span class=\"token keyword\">int</span> <span class=\"token function\">get_size</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">return</span> this<span class=\"token operator\">-></span>size<span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\tbool <span class=\"token function\">is_empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">return</span> this<span class=\"token operator\">-></span>head <span class=\"token operator\">==</span> nullptr <span class=\"token operator\">?</span> true <span class=\"token punctuation\">:</span> false<span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\t<span class=\"token keyword\">void</span> <span class=\"token function\">push_front</span><span class=\"token punctuation\">(</span>T value<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>node <span class=\"token operator\">=</span> new Node<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n\t\tnode<span class=\"token operator\">-></span>data <span class=\"token operator\">=</span> value<span class=\"token punctuation\">;</span>\n\t\tnode<span class=\"token operator\">-></span>front <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\tnode<span class=\"token operator\">-></span>rear <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\t\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">is_empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// first push.</span>\n\t\t\tthis<span class=\"token operator\">-></span>tail <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\tnode<span class=\"token operator\">-></span>rear <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>head<span class=\"token punctuation\">;</span>\n\t\t\tthis<span class=\"token operator\">-></span>head<span class=\"token operator\">-></span>front <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t\t\n\t\tthis<span class=\"token operator\">-></span>head <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token operator\">++</span>size<span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\t<span class=\"token keyword\">void</span> <span class=\"token function\">push_back</span><span class=\"token punctuation\">(</span>T value<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>node <span class=\"token operator\">=</span> new Node<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n\t\tnode<span class=\"token operator\">-></span>data <span class=\"token operator\">=</span> value<span class=\"token punctuation\">;</span>\n\t\tnode<span class=\"token operator\">-></span>front <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\tnode<span class=\"token operator\">-></span>rear <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\t\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">is_empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// first push.</span>\n\t\t\tthis<span class=\"token operator\">-></span>head <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\tnode<span class=\"token operator\">-></span>front <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">;</span>\n\t\t\tthis<span class=\"token operator\">-></span>tail<span class=\"token operator\">-></span>rear <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t\t\n\t\tthis<span class=\"token operator\">-></span>tail <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token operator\">++</span>size<span class=\"token punctuation\">;</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\tT <span class=\"token function\">pop_front</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">is_empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// empty deque.</span>\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// T type에 맞는 error code return.</span>\n\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token keyword\">int</span> pop_val <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>head<span class=\"token operator\">-></span>data<span class=\"token punctuation\">;</span>\n\t\t\t\n\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>this<span class=\"token operator\">-></span>head <span class=\"token operator\">==</span> this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token comment\">// deque with 1 element.</span>\n\t\t\t\tdelete this<span class=\"token operator\">-></span>head<span class=\"token punctuation\">;</span>\n\t\t\t\tthis<span class=\"token operator\">-></span>head <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span> <span class=\"token comment\">// deque with more than 2 elements.</span>\n\t\t\t\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>node <span class=\"token operator\">=</span> new Node<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\tnode <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>head<span class=\"token operator\">-></span>rear<span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\tdelete this<span class=\"token operator\">-></span>head<span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\tthis<span class=\"token operator\">-></span>head <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t\t\tthis<span class=\"token operator\">-></span>head<span class=\"token operator\">-></span>front <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t\n\t\t\t<span class=\"token operator\">--</span>size<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token keyword\">return</span> pop_val<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\tT <span class=\"token function\">pop_back</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token function\">is_empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span> <span class=\"token comment\">// empty deque.</span>\n\t\t\t<span class=\"token keyword\">return</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// T type에 맞는 error code return.</span>\n\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token keyword\">int</span> pop_val <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail<span class=\"token operator\">-></span>data<span class=\"token punctuation\">;</span>\n\t\t\t\n\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>this<span class=\"token operator\">-></span>head <span class=\"token operator\">==</span> this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span> <span class=\"token comment\">// deque with 1 element.</span>\n\t\t\t\tdelete this<span class=\"token operator\">-></span>head<span class=\"token punctuation\">;</span>\n\t\t\t\tthis<span class=\"token operator\">-></span>head <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span> <span class=\"token comment\">// deque with more than 2 elements.</span>\n\t\t\t\tNode<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span> <span class=\"token operator\">*</span>node <span class=\"token operator\">=</span> new Node<span class=\"token operator\">&lt;</span>T<span class=\"token operator\">></span><span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\tnode <span class=\"token operator\">=</span> this<span class=\"token operator\">-></span>tail<span class=\"token operator\">-></span>front<span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\tdelete this<span class=\"token operator\">-></span>tail<span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\tthis<span class=\"token operator\">-></span>tail <span class=\"token operator\">=</span> node<span class=\"token punctuation\">;</span>\n\t\t\t\tthis<span class=\"token operator\">-></span>tail<span class=\"token operator\">-></span>rear <span class=\"token operator\">=</span> nullptr<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t\n\t\t\t<span class=\"token operator\">--</span>size<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token keyword\">return</span> pop_val<span class=\"token punctuation\">;</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t<span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">int</span> <span class=\"token function\">main</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>ios<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">sync_with_stdio</span><span class=\"token punctuation\">(</span>false<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cin<span class=\"token punctuation\">.</span><span class=\"token function\">tie</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> \n\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout<span class=\"token punctuation\">.</span><span class=\"token function\">tie</span><span class=\"token punctuation\">(</span><span class=\"token constant\">NULL</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t\n\tbool from_front<span class=\"token punctuation\">,</span> error<span class=\"token punctuation\">;</span>\n\tDeque<span class=\"token operator\">&lt;</span><span class=\"token keyword\">int</span><span class=\"token operator\">></span> deque<span class=\"token punctuation\">;</span>\n\t<span class=\"token keyword\">int</span> T<span class=\"token punctuation\">,</span> n<span class=\"token punctuation\">;</span>\n\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>string p<span class=\"token punctuation\">,</span> num_arr<span class=\"token punctuation\">;</span>\n\n\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cin <span class=\"token operator\">>></span> T<span class=\"token punctuation\">;</span>\n\t\n\t<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> T<span class=\"token punctuation\">;</span> <span class=\"token operator\">++</span>i<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\tfrom_front <span class=\"token operator\">=</span> true<span class=\"token punctuation\">,</span> error <span class=\"token operator\">=</span> false<span class=\"token punctuation\">;</span>\n\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cin <span class=\"token operator\">>></span> p<span class=\"token punctuation\">;</span>\n\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cin <span class=\"token operator\">>></span> n<span class=\"token punctuation\">;</span>\n\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cin <span class=\"token operator\">>></span> num_arr<span class=\"token punctuation\">;</span>\n\t\t\n\t\tnum_arr <span class=\"token operator\">=</span> num_arr<span class=\"token punctuation\">.</span><span class=\"token function\">substr</span><span class=\"token punctuation\">(</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// '[' 제거</span>\n\t\tnum_arr <span class=\"token operator\">=</span> num_arr<span class=\"token punctuation\">.</span><span class=\"token function\">substr</span><span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> num_arr<span class=\"token punctuation\">.</span><span class=\"token function\">size</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span> <span class=\"token comment\">// ']' 제거</span>\n\t\t\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>n <span class=\"token operator\">></span> <span class=\"token number\">0</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>string token<span class=\"token punctuation\">;</span>\n\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>stringstream <span class=\"token function\">ss</span><span class=\"token punctuation\">(</span>num_arr<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\t\t\t\n\t\t\t<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>std<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span><span class=\"token function\">getline</span><span class=\"token punctuation\">(</span>ss<span class=\"token punctuation\">,</span> token<span class=\"token punctuation\">,</span> <span class=\"token string\">','</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\t\t\t\tdeque<span class=\"token punctuation\">.</span><span class=\"token function\">push_back</span><span class=\"token punctuation\">(</span><span class=\"token function\">atoi</span><span class=\"token punctuation\">(</span>token<span class=\"token punctuation\">.</span><span class=\"token function\">c_str</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\t\t<span class=\"token punctuation\">}</span>\n\t\t\n\t\t<span class=\"token comment\">// R 함수 &amp;&amp; D 함수 진행</span>\n\t\t<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> p<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 operator\">++</span>j<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>p<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token string\">'R'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t\tfrom_front <span class=\"token operator\">=</span> <span class=\"token operator\">!</span>from_front<span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t<span class=\"token keyword\">else</span> <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>p<span class=\"token punctuation\">[</span>j<span class=\"token punctuation\">]</span> <span class=\"token operator\">==</span> <span class=\"token string\">'D'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>from_front<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>deque<span class=\"token punctuation\">.</span><span class=\"token function\">pop_front</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n\t\t\t\t\t\terror <span class=\"token operator\">=</span> true<span class=\"token punctuation\">;</span>\n\t\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\t\t\t<span class=\"token keyword\">if</span><span class=\"token punctuation\">(</span>deque<span class=\"token punctuation\">.</span><span class=\"token function\">pop_back</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">==</span> <span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n\t\t\t\t\t\terror <span class=\"token operator\">=</span> true<span class=\"token punctuation\">;</span>\n\t\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t\t\n\t\t<span class=\"token comment\">// 결과 출력</span>\n\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>error<span class=\"token punctuation\">)</span>\n\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"error\"</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>deque<span class=\"token punctuation\">.</span><span class=\"token function\">is_empty</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\t\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"[]\"</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">'\\n'</span><span class=\"token punctuation\">;</span>\n\t\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"[\"</span><span class=\"token punctuation\">;</span>\n\t\t\t\t\n\t\t\t\t<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>from_front<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n\t\t\t\t\t<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>deque<span class=\"token punctuation\">.</span><span class=\"token function\">get_size</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">>=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n\t\t\t\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> deque<span class=\"token punctuation\">.</span><span class=\"token function\">pop_front</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\",\"</span><span class=\"token punctuation\">;</span>\n\t\t\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> deque<span class=\"token punctuation\">.</span><span class=\"token function\">pop_front</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"]\\n\"</span><span class=\"token punctuation\">;</span>\n\t\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t\t<span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n\t\t\t\t\t<span class=\"token keyword\">while</span> <span class=\"token punctuation\">(</span>deque<span class=\"token punctuation\">.</span><span class=\"token function\">get_size</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">>=</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n\t\t\t\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> deque<span class=\"token punctuation\">.</span><span class=\"token function\">pop_back</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\",\"</span><span class=\"token punctuation\">;</span>\n\t\t\t\t\tstd<span class=\"token punctuation\">:</span><span class=\"token punctuation\">:</span>cout <span class=\"token operator\">&lt;&lt;</span> deque<span class=\"token punctuation\">.</span><span class=\"token function\">pop_back</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">&lt;&lt;</span> <span class=\"token string\">\"]\\n\"</span><span class=\"token punctuation\">;</span>\n\t\t\t\t<span class=\"token punctuation\">}</span>\n\t\t\t<span class=\"token punctuation\">}</span>\n\t\t<span class=\"token punctuation\">}</span>\n\t<span class=\"token punctuation\">}</span>\n\t\n\t<span class=\"token keyword\">return</span> <span class=\"token number\">0</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<h3>References</h3>\n<p><a href=\"https://psychoria.tistory.com/666\">https://psychoria.tistory.com/666</a><br>\n<a href=\"https://geekhub.tistory.com/63\">https://geekhub.tistory.com/63</a></p>","fields":{"tagSlugs":["/tags/백준/","/tags/algorithm/"],"slug":"/posts/baekjoons/5430/"},"frontmatter":{"title":"[백준] 5430 : AC","tags":["백준","Algorithm"],"date":"2020-04-12","description":"백준 5430번 문제 : AC"}}},"pageContext":{"slug":"/posts/baekjoons/5430/"}}