{"id":2848,"date":"2019-06-02T23:38:15","date_gmt":"2019-06-02T14:38:15","guid":{"rendered":"https:\/\/now0930.pe.kr\/wordpress\/?p=2848"},"modified":"2019-06-02T23:43:13","modified_gmt":"2019-06-02T14:43:13","slug":"%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%a8%b8%ec%8a%a4-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/%ed%94%84%eb%a1%9c%ea%b7%b8%eb%9e%98%eb%a8%b8%ec%8a%a4-%eb%84%a4%ed%8a%b8%ec%9b%8c%ed%81%ac\/","title":{"rendered":"\ud504\ub85c\uadf8\ub798\uba38\uc2a4 \ub124\ud2b8\uc6cc\ud06c"},"content":{"rendered":"\n<p>DFS\uc778\uc9c0 BFS\uc778\uc9c0 \ud5f7\uac08\ub9b0\ub2e4. \ubc30\uc6b0\uba74\uc11c \ud558\ub824\ub2c8 \ud798\ub4dc\ub124. Level3\uae4c\uc9c0\ub9cc \ud574\uc57c\uaca0\ub2e4. <a href=\"https:\/\/mygumi.tistory.com\/102\">\ub0a8\uc774 \uc791\uc131\ud55c \ucf54\ub4dc<\/a> \uadf8\ub300\ub85c \uc4f0\ub2c8 \uac1c\ud310\ub418\ub294 \ub4ef \ud558\uace0. \ud55c \ubb38\uc81c\ub2f9 30\ubd84\uc774\ub77c\ub294\ub370 \ub3c4\uc800\ud788 \ubabb \ud480\ub4ef.<\/p>\n\n\n\n<p>20\ub144\uc804 \ubc30\uc6b4 linked list, stack, queue\ub97c \ub2e4\uc2dc \ubcf4\ub2c8 \ub0b4\uac00 \ucc38 \ud798\ub4e4\uac8c \uc0b4\uc558\ub2e4. \uc560\uace0 \ubaa8\uac00\uc9c0\uc57c.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\nimport java.util.Stack;\nimport java.util.Arrays;\nimport java.util.TreeSet;\n\npublic class Main {\n\tpublic static void main(String[] args) {\n\t\tSolution sol = new Solution();\n\t\tint[][] nodeMap = new int[3][3];\n\t\tnodeMap[0][0] = 1;\n\t\tnodeMap[0][1] = 1;\n\t\tnodeMap[0][2] = 0;\n\t\tnodeMap[1][0] = 1;\n\t\tnodeMap[1][1] = 1;\n\t\tnodeMap[1][2] = 0;\n\t\tnodeMap[2][0] = 0;\n\t\tnodeMap[2][1] = 0;\n\t\tnodeMap[2][2] = 1;\n\n\t\tsol.solution(3, nodeMap);\n\n\t\tSystem.out.println(\"\uc5ec\uae30\");\n\t}\/\/ void main\n\n} \/\/ Main\n\nclass Solution {\n\tpublic int solution(int n, int[][] nodeMap) {\n\n\t\t\/*\n\t\t * boolean[] nodeVisited = new boolean[3]; nodeVisited[0] = false;\n\t\t * nodeVisited[1] = false; nodeVisited[2] = false;\n\t\t * \n\t\t * int[] nodeVisitedInd = new int[3]; nodeVisitedInd[0] = 0; nodeVisitedInd[1] =\n\t\t * 0; nodeVisitedInd[2] = 0; \/\/\ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 \uc784\uc2dc\ub85c.. \/\/\uae30\uc874 nodeMap\uc744 \ubcf4\uace0 \ub9cc\ub4e4\uc5b4\uc918\uc57c \ub428\n\t\t *\/\n\t\tint[] nodeVisitedInd = new int[nodeMap.length];\n\t\tfor (int i = 0; i &lt; nodeMap.length; i++)\n\t\t\tnodeVisitedInd[i] = 0;\n\n\t\t\/\/ \uc911\ubcf5\uc744 \uc0ad\uc81c\ud558\uae30 \uc704\ud574 \ub9cc\ub4e6.\n\t\tTreeSet trimedNodeVisitedInd = new TreeSet();\n\n\t\tint answer = 0;\n\t\tboolean flag = false;\n\t\tint visitIndex = 1;\n\t\tfor (int i = 0; i &lt; nodeMap.length; i++) {\n\n\/\/\t\tdfs(nodeMap, nodeVisited, 0, flag);\n\t\t\tSystem.out.println(\"**********************\");\n\t\t\tSystem.out.println(\"\uc81c\uc77c \ubc14\uae65\ucabd \uc678\ubd80 \ub8e8\ud504\");\n\t\t\tSystem.out.println(\"visitIndex = \" + visitIndex);\n\t\t\tSystem.out.println(\"**********************\");\n\n\t\t\tdfs(nodeMap, nodeVisitedInd, i, flag, visitIndex);\n\n\t\t\tvisitIndex++;\n\n\t\t}\n\n\t\tSystem.out.println(\"nodeVisitedInd\ub294\" + nodeVisitedInd[0] + nodeVisitedInd[1] + nodeVisitedInd[2]);\n\t\tfor (int i = 0; i &lt; nodeVisitedInd.length; i++) {\n\t\t\ttrimedNodeVisitedInd.add(nodeVisitedInd[i]);\n\t\t}\n\t\tSystem.out.println(\"TreeSet \ud06c\uae30\ub294\" + trimedNodeVisitedInd.size());\n\t\tanswer = trimedNodeVisitedInd.size();\n\n\t\treturn answer;\n\t} \/\/ solutions\n\n\tpublic static void dfs(int[][] nodeMap, boolean[] nodeVisited, int startNode, boolean flag) {\n\t\tStack&lt;Integer> dfsStack = new Stack&lt;>();\n\t\tdfsStack.push(startNode);\n\t\tnodeVisited[startNode] = true;\n\t\tSystem.out.println(\"node \" + startNode + \" is visited\");\n\n\t\twhile (!dfsStack.empty()) {\n\t\t\tflag = false;\n\t\t\tint tempNode = dfsStack.peek();\n\t\t\tfor (int i = 0; i &lt; nodeMap.length; i++) {\n\t\t\t\tSystem.out.println(tempNode + \"\uc5d0\uc11c \" + i + \" \ub178\ub4dc\ub85c \uac80\uc0c9 \uc2dc\uc791\");\n\t\t\t\t\/\/ \uc67c\ucabd\uc5d0\uc11c \uc624\ub978\ucabd\uc73c\ub85c \ud6d1\uc74c..1\uc774\uba74 \ub9c1\ud06c\uac00 \uc788\uc74c.\n\t\t\t\tif (nodeMap[tempNode][i] == 1 &amp;&amp; !nodeVisited[i]) {\n\t\t\t\t\tdfsStack.push(i);\n\t\t\t\t\tnodeVisited[i] = true;\n\t\t\t\t\tSystem.out.println(\"node \" + nodeMap[tempNode][i] + \" is visited\");\n\t\t\t\t\tSystem.out.println(\"dsfStack has \" + Arrays.toString(dfsStack.toArray()));\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tSystem.out.println(tempNode + \"\ub178\ub4dc \uc5d0\uc11c \" + i + \"\ud655\uc778\");\n\t\t\t\tSystem.out.println(\"\uae38\uc774 \uc5c6\uac70\ub098 \uc774\ubbf8 \ubc29\ubb38\ud558\uc5ec \uc0dd\ub7b5\");\n\t\t\t\tSystem.out.println(\"\ub178\ub4dc \" + i + \"\ubc29\ubb38 \uacb0\uacfc\ub294\" + nodeVisited[i]);\n\n\t\t\t} \/\/ for loop\n\t\t\tif (!flag) {\n\t\t\t\tdfsStack.pop();\n\t\t\t\tSystem.out.println(\"pop \uc2e4\ud589\ub428\");\n\n\t\t\t} \/\/ if(!flag)\n\n\t\t} \/\/ while\n\n\t}\/\/ dsf..\n\n\tpublic static void dfs(int[][] nodeMap, int[] nodeVisited, int startNode, boolean flag, int visitIndex) {\n\t\tStack&lt;Integer> dfsStack = new Stack&lt;>();\n\t\t\/\/ for \ub8e8\ud504\ub97c \ub3cc\ub9b4 \uacbd\uc6b0, \uc7ac\ubc29\ubb38\uc744 \ubc29\uc9c0.\n\t\t\/\/ \uc870\uac74\uc5d0 \ub530\ub77c Stack\uc5d0 push.\n\t\tif (nodeVisited[startNode] == 0) {\n\t\t\tdfsStack.push(startNode);\n\t\t\tnodeVisited[startNode] = visitIndex;\n\t\t\tSystem.out.println(\"\\t****\ub178\ub4dc \ubc29\ubb38****\");\n\t\t\tSystem.out.println(\"\\tnode \" + startNode + \" is visited\");\n\t\t\tSystem.out.println(\"\\t****\ub178\ub4dc \ubc29\ubb38****\");\n\t\t}\n\n\t\twhile (!dfsStack.empty()) {\n\t\t\tflag = false;\n\t\t\tint tempNode = dfsStack.peek();\n\t\t\tfor (int i = 0; i &lt; nodeMap.length; i++) {\n\t\t\t\tSystem.out.println(tempNode + \"\uc5d0\uc11c \" + i + \" \ub178\ub4dc\ub85c \uac80\uc0c9 \uc2dc\uc791\");\n\t\t\t\t\/\/ \uc67c\ucabd\uc5d0\uc11c \uc624\ub978\ucabd\uc73c\ub85c \ud6d1\uc74c..1\uc774\uba74 \ub9c1\ud06c\uac00 \uc788\uc74c.\n\t\t\t\tif (nodeMap[tempNode][i] == 1 &amp;&amp; nodeVisited[i] == 0) {\n\t\t\t\t\tdfsStack.push(i);\n\t\t\t\t\tnodeVisited[i] = visitIndex;\n\t\t\t\t\tSystem.out.println(\"\\t****\ub178\ub4dc \ubc29\ubb38****\");\n\t\t\t\t\tSystem.out.println(\"\\tnode \" + i + \" is visited\");\n\t\t\t\t\tSystem.out.println(\"\\t****\ub178\ub4dc \ubc29\ubb38****\");\n\t\t\t\t\tSystem.out.println(\"node \" + nodeMap[tempNode][i] + \" is visited\");\n\t\t\t\t\tSystem.out.println(\"dsfStack has \" + Arrays.toString(dfsStack.toArray()));\n\t\t\t\t\tSystem.out.println(\"nodeVisited[\" + i + \"]\ub294 \" + nodeVisited[i]);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\t}\n\n\t\t\t\tSystem.out.println(tempNode + \"\ub178\ub4dc \uc5d0\uc11c \" + i + \"\ud655\uc778\");\n\t\t\t\tSystem.out.println(\"\uae38\uc774 \uc5c6\uac70\ub098 \uc774\ubbf8 \ubc29\ubb38\ud558\uc5ec \uc0dd\ub7b5\");\n\t\t\t\tSystem.out.println(\"\ub178\ub4dc \" + i + \"\ubc29\ubb38 \uacb0\uacfc\ub294\" + nodeVisited[i]);\n\n\t\t\t} \/\/ for loop\n\t\t\tif (!flag) {\n\t\t\t\tdfsStack.pop();\n\t\t\t\tSystem.out.println(\"pop \uc2e4\ud589\ub428\");\n\n\t\t\t} \/\/ if(!flag)\n\n\t\t} \/\/ while\n\n\t}\/\/ dsf..\n\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>DFS\uc778\uc9c0 BFS\uc778\uc9c0 \ud5f7\uac08\ub9b0\ub2e4. \ubc30\uc6b0\uba74\uc11c \ud558\ub824\ub2c8 \ud798\ub4dc\ub124. Level3\uae4c\uc9c0\ub9cc \ud574\uc57c\uaca0\ub2e4. \ub0a8\uc774 \uc791\uc131\ud55c \ucf54\ub4dc \uadf8\ub300\ub85c \uc4f0\ub2c8 \uac1c\ud310\ub418\ub294 \ub4ef \ud558\uace0. \ud55c \ubb38\uc81c\ub2f9 30\ubd84\uc774\ub77c\ub294\ub370 \ub3c4\uc800\ud788 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2849,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[98,584,586,585],"class_list":["post-2848","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-12","tag-java","tag-programmers","tag-586","tag-585"],"jetpack_featured_media_url":"https:\/\/now0930.pe.kr\/wordpress\/wp-content\/uploads\/2019\/06\/Network.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/2848","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=2848"}],"version-history":[{"count":4,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/2848\/revisions"}],"predecessor-version":[{"id":2853,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/2848\/revisions\/2853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media\/2849"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=2848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=2848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=2848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}