{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-1918-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"57e13bd2-f16d-5999-bb39-8beeae105c93","excerpt":"일반적으로 사용하는 중위 표기식을 입력받은 후. 해당 식을 후위 표기식으로 만든 후 출력하는 문제. 입력된 문자열을 괄호로 감싸 반복문을 수행하고 반복 수행중인 값이 isupper을 이용하여 대문자일 때 출력. ’(‘일 때 스택에 추가. ’)‘일 때 스택을 pop한 값이 ’(‘일 때까지 출력한다. 그리고 연산자일 때 스택의 마지막 값이 ’(‘가 아니며 스택의 마지막 값을 딕셔너리에 저장된 우선순위로 비교하여 현재 연산자보다 우선순위가 높은 연산자들을 먼저 출력 후 해당 연산자를 스택에 append…","html":"<p>일반적으로 사용하는 중위 표기식을 입력받은 후. 해당 식을 후위 표기식으로 만든 후 출력하는 문제. 입력된 문자열을 괄호로 감싸 반복문을 수행하고 반복 수행중인 값이 isupper을 이용하여 대문자일 때 출력. ’(‘일 때 스택에 추가. ’)‘일 때 스택을 pop한 값이 ’(‘일 때까지 출력한다. 그리고 연산자일 때 스택의 마지막 값이 ’(‘가 아니며 스택의 마지막 값을 딕셔너리에 저장된 우선순위로 비교하여 현재 연산자보다 우선순위가 높은 연산자들을 먼저 출력 후 해당 연산자를 스택에 append하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\">s <span class=\"token operator\">=</span> <span class=\"token builtin\">input</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\nstack <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span>\npriority <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token string\">'*'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'/'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">2</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'+'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'-'</span><span class=\"token punctuation\">:</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span>\n    <span class=\"token string\">'('</span><span class=\"token punctuation\">:</span> <span class=\"token number\">0</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token keyword\">for</span> ch <span class=\"token keyword\">in</span> <span class=\"token string\">'('</span><span class=\"token operator\">+</span>s<span class=\"token operator\">+</span><span class=\"token string\">')'</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">if</span> ch<span class=\"token punctuation\">.</span>isupper<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>ch<span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">elif</span> ch <span class=\"token operator\">==</span> <span class=\"token string\">\"(\"</span><span class=\"token punctuation\">:</span>\n        stack<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>ch<span class=\"token punctuation\">)</span>\n\n    <span class=\"token keyword\">elif</span> ch <span class=\"token operator\">==</span> <span class=\"token string\">\")\"</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">while</span> <span class=\"token boolean\">True</span><span class=\"token punctuation\">:</span>\n            c <span class=\"token operator\">=</span> stack<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n            <span class=\"token keyword\">if</span> c <span class=\"token operator\">==</span> <span class=\"token string\">\"(\"</span><span class=\"token punctuation\">:</span>\n                <span class=\"token keyword\">break</span>\n            <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>c<span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">else</span><span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">while</span> stack<span class=\"token punctuation\">[</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">]</span> <span class=\"token operator\">!=</span> <span class=\"token string\">\"(\"</span> <span class=\"token keyword\">and</span> priority<span class=\"token punctuation\">[</span>stack<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 operator\">>=</span> priority<span class=\"token punctuation\">[</span>ch<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>\n            <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>stack<span class=\"token punctuation\">.</span>pop<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span> end<span class=\"token operator\">=</span><span class=\"token string\">\"\"</span><span class=\"token punctuation\">)</span>\n        stack<span class=\"token punctuation\">.</span>append<span class=\"token punctuation\">(</span>ch<span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-1918 - Python","date":"November 13, 2020"}}},"pageContext":{"slug":"/Algorithm/BOJ-1918-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-11657-Python/"},"frontmatter":{"title":"BOJ-11657 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-2206-Python/"},"frontmatter":{"title":"BOJ-2206 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}