{"id":4452,"date":"2017-02-08T13:43:57","date_gmt":"2017-02-08T04:43:57","guid":{"rendered":"http:\/\/www.gisdeveloper.co.kr\/?p=4452"},"modified":"2020-05-28T15:56:55","modified_gmt":"2020-05-28T06:56:55","slug":"java-%ec%9a%b0%ec%84%a0%ec%88%9c%ec%9c%84-%ed%81%90priority-queue-%ed%99%9c%ec%9a%a9-%ec%98%88%ec%a0%9c%ec%bd%94%eb%93%9c","status":"publish","type":"post","link":"http:\/\/www.gisdeveloper.co.kr\/?p=4452","title":{"rendered":"[Java] \uc6b0\uc120\uc21c\uc704 \ud050(Priority Queue) \ud65c\uc6a9 \uc608\uc81c\ucf54\ub4dc"},"content":{"rendered":"<p>\uc790\ubc14\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ucee8\ud14c\uc774\ub108(Container) \uc911 \uc5b4\ub5a4 \ub370\uc774\ud130\uc5d0 \ub300\ud574 \uc6b0\uc120\uc21c\uc704 \uac12\uc744 \ubd80\uc5ec\ud558\uace0, \uc774 \uc6b0\uc120\uc21c\uc704\ub97c \uae30\uc900\uc73c\ub85c \uc790\ub3d9\uc73c\ub85c \uc815\ub82c\ub418\uc5b4, \uc6b0\uc120\uc21c\uc704\uc5d0 \ub530\ub77c \ub370\uc774\ud130\ub97c \uaebc\ub0b4\uc5b4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc6b0\uc120\uc21c\uc704 \ud050\uc5d0 \ub300\ud55c \uc608\uc81c \ucf54\ub4dc\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n<p>\uba3c\uc800 \uc6b0\uc120\uc21c\uc704 \uac12\uc744 \uac16\ub294 \ub370\uc774\ud130\uc5d0 \ub300\ud55c \ud0c0\uc785 \uc815\uc758\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc544\ub798\ucc98\ub7fc Node\ub77c\ub294 \ud074\ub798\uc2a4\ub97c \ucd94\uac00\ud574 \ud0c0\uc785\uc744 \uc815\uc758\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\npackage tstPriorityQueue;\r\n\r\npublic class Node implements Comparable&lt;Node> {\r\n\tprivate String UUID;\r\n\tprivate String parentUUID;\r\n\tprivate double G;\r\n\tprivate double H;\r\n\t\r\n\tpublic Node(String UUID, double G, double H) {\r\n\t\tthis.UUID = UUID;\r\n\t\tthis.parentUUID = null;\r\n\t\tthis.G = G;\r\n\t\tthis.H = H;\r\n\t}\r\n\t\r\n\tpublic double getF() { return G + H; }\r\n\tpublic double getG() { return G; }\r\n\tpublic double getH() { return H; }\r\n\tpublic String getNode() { return UUID; }\r\n\tpublic String getParentNode() { return parentUUID; }\r\n\t\r\n\tpublic void setG(double v) { G = v; }\r\n\tpublic void setH(double v) { H = v; }\r\n\tpublic void setParentNode(String v) { parentUUID = v; }\r\n\t\r\n\t@Override\r\n\tpublic int compareTo(Node target) {\r\n\t    if (this.getF() > target.getF()) {\r\n            return 1;\r\n        } else if (this.getF() < target.getF()) {\r\n            return -1;\r\n        }\r\n\r\n\t    return 0;\r\n\t}\r\n\t\r\n\tpublic String toString() {\r\n\t\treturn UUID + '(' + getF() + ')';\r\n\t}\r\n}<\/pre>\n<p>\uc704\uc758 \ud074\ub798\uc2a4\uc5d0\uc11c \uc911\uc694\ud55c \ubd80\ubd84\uc740 \uc6b0\uc120\uc21c\uc704\uac12\uc744 \uc5bb\uae30 \uc704\ud55c getF() \ud568\uc218\uc785\ub2c8\ub2e4. \uc774 \ud568\uc218\ub294 \ub370\uc774\ud130\uc758 \uc0c1\ub300\uc801\uc778 \ud06c\uae30\uc758 \ube44\uad50\ub97c \uc704\ud55c \uc778\ud130\ud398\uc774\uc2a4\uc778 Comparable \uad6c\ud604\ud560 \ub54c \uc0ac\uc6a9\ub418\ub294 \ud568\uc218\uc778\ub370\uc694. \ubc14\ub85c compareTo \ub77c\ub294 \ud568\uc218\ub85c\uc368, \uc704\uc758 \uacbd\uc6b0\uc5d0\ub294 \uc6b0\uc120\uc21c\uc704\uac12\uc774 \uc791\uc740 \uac83\uc744 \uba3c\uc800 \uaebc\ub0b4\uc5b4 \uc0ac\uc6a9\ud558\uaca0\ub2e4\ub294 \uc815\uc758\uc785\ub2c8\ub2e4.<\/p>\n<p>\uc2e4\uc81c\ub85c, \uc704\uc758 Node \ud074\ub798\uc2a4\uc5d0 \ub300\ud55c \ud0c0\uc785\uc73c\ub85c \uc815\uc758\ub41c \ub370\uc774\ud130\ub97c \ucee8\ud14c\uc774\ub108\uc5d0 \ub123\uace0, \uc0ac\uc6a9\ud558\ub294 \ucf54\ub4dc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\r\npackage tstPriorityQueue;\r\n\r\nimport java.util.PriorityQueue;\r\n\r\npublic class EntryMain {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\t\/\/ Create items\r\n\t\tNode node1 = new Node(\"423182c4-edb5-11e6-bc64-92361f002671\", 1.0, 5.1);\r\n\t\tNode node2 = new Node(\"42318742-edb5-11e6-bc64-92361f002671\", 1.0, 2.4);\r\n\t\tNode node3 = new Node(\"42318878-edb5-11e6-bc64-92361f002671\", 1.0, 3.8);\r\n\t\tNode node4 = new Node(\"42318968-edb5-11e6-bc64-92361f002671\", 1.0, 6.2);\r\n\t\tNode node5 = new Node(\"42318a3a-edb5-11e6-bc64-92361f002671\", 1.0, 4.5);\r\n\t\t\r\n\t\t\/\/ Create priority queue\r\n\t\tPriorityQueue&lt;Node> pQueue = new PriorityQueue&lt;Node>();\r\n\t\t\r\n\t\t\/\/ Add items to queue\r\n\t\tpQueue.offer(node1); \/\/ same code as pQueue.add(node1)\r\n\t\tpQueue.offer(node2);\r\n\t\tpQueue.offer(node3);\r\n\t\tpQueue.offer(node4);\r\n\t\tpQueue.offer(node5);\r\n\t\t\r\n\t\t\/\/ Get items from queue\r\n\t\twhile(!pQueue.isEmpty()) {\r\n\t\t\tNode node = pQueue.poll();\r\n\t\t\tSystem.out.println(node);\r\n\t\t}\r\n\t}\r\n\r\n}<\/pre>\n<p>\ub370\uc774\ud130\ub97c 5\uac1c \uc0dd\uc131\ud574\uc11c, \uc6b0\uc120\uc21c\uc704 \ud050 \uc800\uc7a5\uc18c\uc5d0 \uc800\uc7a5\ud558\uace0 \ucd5c\uc885\uc801\uc73c\ub85c 26\ubc88 \ucf54\ub4dc\ub97c \ud1b5\ud574 5\uac1c\uc758 \ub370\uc774\ud130\ub97c \uc6b0\uc120\uc21c\uc704\uc5d0 \ub530\ub77c \uaebc\ub0b4\uc5b4 \ud654\uba74\uc5d0 \ud45c\uc2dc\ud569\ub2c8\ub2e4. \uadf8 \uacb0\uacfc\ub294 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p><code>42318742-edb5-11e6-bc64-92361f002671(3.4)<br \/>\n42318878-edb5-11e6-bc64-92361f002671(4.8)<br \/>\n42318a3a-edb5-11e6-bc64-92361f002671(5.5)<br \/>\n423182c4-edb5-11e6-bc64-92361f002671(6.1)<br \/>\n42318968-edb5-11e6-bc64-92361f002671(7.2)<\/code><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc790\ubc14\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ucee8\ud14c\uc774\ub108(Container) \uc911 \uc5b4\ub5a4 \ub370\uc774\ud130\uc5d0 \ub300\ud574 \uc6b0\uc120\uc21c\uc704 \uac12\uc744 \ubd80\uc5ec\ud558\uace0, \uc774 \uc6b0\uc120\uc21c\uc704\ub97c \uae30\uc900\uc73c\ub85c \uc790\ub3d9\uc73c\ub85c \uc815\ub82c\ub418\uc5b4, \uc6b0\uc120\uc21c\uc704\uc5d0 \ub530\ub77c \ub370\uc774\ud130\ub97c \uaebc\ub0b4\uc5b4 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc6b0\uc120\uc21c\uc704 \ud050\uc5d0 \ub300\ud55c \uc608\uc81c \ucf54\ub4dc\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4. \uba3c\uc800 \uc6b0\uc120\uc21c\uc704 \uac12\uc744 \uac16\ub294 \ub370\uc774\ud130\uc5d0 \ub300\ud55c \ud0c0\uc785 \uc815\uc758\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uc544\ub798\ucc98\ub7fc Node\ub77c\ub294 \ud074\ub798\uc2a4\ub97c \ucd94\uac00\ud574 \ud0c0\uc785\uc744 \uc815\uc758\ud569\ub2c8\ub2e4. package tstPriorityQueue; public class Node implements Comparable&lt;Node> { private String UUID; private &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/www.gisdeveloper.co.kr\/?p=4452\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;[Java] \uc6b0\uc120\uc21c\uc704 \ud050(Priority Queue) \ud65c\uc6a9 \uc608\uc81c\ucf54\ub4dc&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[60,8],"tags":[],"class_list":["post-4452","post","type-post","status-publish","format-standard","hentry","category-java","category-programming"],"_links":{"self":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/4452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4452"}],"version-history":[{"count":7,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/4452\/revisions"}],"predecessor-version":[{"id":9705,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/4452\/revisions\/9705"}],"wp:attachment":[{"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4452"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.gisdeveloper.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}