{"componentChunkName":"component---src-templates-blog-post-js","path":"/Algorithm/BOJ-5639-Python/","result":{"data":{"site":{"siteMetadata":{"title":"hyesungoh","author":"hyesungoh","siteUrl":"https://www.hyesungoh.xyz","comment":{"disqusShortName":"","utterances":"hyesungoh/blog"},"sponsor":{"buyMeACoffeeId":""}}},"markdownRemark":{"id":"397a69d5-6f8a-50a0-82d8-76a1c81b974a","excerpt":"노드의 데이터보다 작은 노드를 왼쪽에, 큰 노드를 오른쪽에 배치한 이진 검색 트리를 전위 순회한 결과룰 입력받은 후, 후위 순회한 결과를 출력하는 문제. 입력의 끝이 정해져 있지 않음으로 stdin.readlines를 이용하여 입력을 받았으며 클래스를 이용하여 노드, 이전검색트리를 만들어 이진 검색트리에 위치시킨 후 후위순회를 하여 결과를 출력하여 풀었으나 시간초과 결과를 받게 되었다. 그 후 해당 게시물을 참고하여 리스트의 인덱스를 이용하여 후위순회하는 방법을 참고하여 풀었다.","html":"<p>노드의 데이터보다 작은 노드를 왼쪽에, 큰 노드를 오른쪽에 배치한 이진 검색 트리를 전위 순회한 결과룰 입력받은 후, 후위 순회한 결과를 출력하는 문제. 입력의 끝이 정해져 있지 않음으로 stdin.readlines를 이용하여 입력을 받았으며 클래스를 이용하여 노드, 이전검색트리를 만들어 이진 검색트리에 위치시킨 후 후위순회를 하여 결과를 출력하여 풀었으나 시간초과 결과를 받게 되었다. 그 후 <a href=\"https://developmentdiary.tistory.com/442\">해당</a> 게시물을 참고하여 리스트의 인덱스를 이용하여 후위순회하는 방법을 참고하여 풀었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token comment\"># import sys</span>\n<span class=\"token comment\"># sys.setrecursionlimit(10**9)</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># class Node:</span>\n<span class=\"token comment\">#     def __init__(self, data):</span>\n<span class=\"token comment\">#         self.data = data</span>\n<span class=\"token comment\">#         self.left = self.right = None</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\">#     def __str__(self):</span>\n<span class=\"token comment\">#         return str(self.data)</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># class Binary:</span>\n<span class=\"token comment\">#     def __init__(self):</span>\n<span class=\"token comment\">#         self.root = None</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\">#     def insert(self, data):</span>\n<span class=\"token comment\">#         self.root = self.insert_req(self.root, data)</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\">#     def insert_req(self, node, data):</span>\n<span class=\"token comment\">#         if node == None:</span>\n<span class=\"token comment\">#             node = Node(data)</span>\n<span class=\"token comment\">#         else:</span>\n<span class=\"token comment\">#             if node.data &lt; data:</span>\n<span class=\"token comment\">#                 node.right = self.insert_req(node.right, data)</span>\n<span class=\"token comment\">#             else:</span>\n<span class=\"token comment\">#                 node.left = self.insert_req(node.left, data)</span>\n<span class=\"token comment\">#         return node</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\">#     def postorder(self, node):</span>\n<span class=\"token comment\">#         if node != None:</span>\n<span class=\"token comment\">#             self.postorder(node.left)</span>\n<span class=\"token comment\">#             self.postorder(node.right)</span>\n<span class=\"token comment\">#             print(node)</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\">#</span>\n<span class=\"token comment\"># l = list(map(int, sys.stdin.readlines()))</span>\n<span class=\"token comment\"># b = Binary()</span>\n<span class=\"token comment\"># for i in l:</span>\n<span class=\"token comment\">#     b.insert(i)</span>\n<span class=\"token comment\"># b.postorder(b.root)</span>\n\n<span class=\"token keyword\">import</span> sys\nsys<span class=\"token punctuation\">.</span>setrecursionlimit<span class=\"token punctuation\">(</span><span class=\"token number\">10</span><span class=\"token operator\">**</span><span class=\"token number\">9</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">def</span> <span class=\"token function\">postorder</span><span class=\"token punctuation\">(</span>start<span class=\"token punctuation\">,</span> end<span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n    <span class=\"token keyword\">if</span> start <span class=\"token operator\">></span> end<span class=\"token punctuation\">:</span>\n        <span class=\"token keyword\">return</span>\n\n    division <span class=\"token operator\">=</span> end <span class=\"token operator\">+</span> <span class=\"token number\">1</span>  <span class=\"token comment\"># 나눌위치</span>\n    <span class=\"token keyword\">for</span> i <span class=\"token keyword\">in</span> <span class=\"token builtin\">range</span><span class=\"token punctuation\">(</span>start <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> end <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 keyword\">if</span> l<span class=\"token punctuation\">[</span>start<span class=\"token punctuation\">]</span> <span class=\"token operator\">&lt;</span> l<span class=\"token punctuation\">[</span>i<span class=\"token punctuation\">]</span><span class=\"token punctuation\">:</span>\n            division <span class=\"token operator\">=</span> i\n            <span class=\"token keyword\">break</span>\n\n    postorder<span class=\"token punctuation\">(</span>start <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">,</span> division <span class=\"token operator\">-</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span>  <span class=\"token comment\"># 분할 왼쪽</span>\n    postorder<span class=\"token punctuation\">(</span>division<span class=\"token punctuation\">,</span> end<span class=\"token punctuation\">)</span>  <span class=\"token comment\"># 분할 오른쪽</span>\n    <span class=\"token keyword\">print</span><span class=\"token punctuation\">(</span>l<span class=\"token punctuation\">[</span>start<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span>\n\nl <span class=\"token operator\">=</span> <span class=\"token builtin\">list</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">map</span><span class=\"token punctuation\">(</span><span class=\"token builtin\">int</span><span class=\"token punctuation\">,</span> sys<span class=\"token punctuation\">.</span>stdin<span class=\"token punctuation\">.</span>readlines<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\npostorder<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span><span class=\"token builtin\">len</span><span class=\"token punctuation\">(</span>l<span class=\"token punctuation\">)</span><span class=\"token operator\">-</span><span class=\"token number\">1</span><span class=\"token punctuation\">)</span></code></pre></div>","frontmatter":{"title":"BOJ-5639 - Python","date":"December 02, 2020"}}},"pageContext":{"slug":"/Algorithm/BOJ-5639-Python/","previous":{"fields":{"slug":"/Algorithm/BOJ-11057-Python/"},"frontmatter":{"title":"BOJ-11057 - Python","category":"Algorithm","draft":false}},"next":{"fields":{"slug":"/Algorithm/BOJ-2263-Python/"},"frontmatter":{"title":"BOJ-2263 - Python","category":"Algorithm","draft":false}}}},"staticQueryHashes":["3128451518","3290666882"]}