Search

๊น€์ค€ํ˜ธ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
3600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; public class Solution { // ๋ฐฉ๋ฌธํ•œ ๊ณณ ์ฒ˜๋ฆฌ static boolean visited[]; // ๊ฐ„ ๋ฃจํŠธ๋“ค์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. static ArrayList<String> savedRoute; // ticket[0] -> ticket[1]๋กœ ๊ฐ€๋Š” ํ•ญ๊ถŒ๊ถŒ. public String[] solution(String[][] tickets) { String[] answer = {}; // ๋ฐฉ๋ฌธํ•œ ๊ณณ ์ดˆ๊ธฐํ™” visited = new boolean[tickets.length]; // ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•˜์˜€์Œ์„ ์ฒดํฌํ•ด์•ผํ•œ๋‹ค. int count = 0; // ๊ฐ„ ๋ฃจํŠธ๋“ค ์ดˆ๊ธฐํ™” savedRoute = new ArrayList<>(); // ์ถœ๋ฐœ์  String start = "ICN"; // ๋ฃจํŠธ ์ €์žฅ(ICN๋ถ€ํ„ฐ ์ถœ๋ฐœํ•˜๋ฏ€๋กœ ICN์„ ์ž…๋ ฅ) String route = "ICN"; dfs(start, route, tickets, count); Collections.sort(savedRoute); answer = savedRoute.get(0).split(" "); return answer; } void dfs(String start, String route, String[][] tickets, int count) { // ๋ชจ๋“  ๊ณตํ•ญ์„ ๋‹ค ๋Œ์•„๋‹ค๋…”๋‹ค๋ฉด, ์ €์žฅ๋œ ๋ฌธ์ž์—ด์„ ์–ด๋ ˆ์ด๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค. if (count == tickets.length) { savedRoute.add(route); } // ๋ชจ๋“  ๊ณตํ•ญ์„ ๋‹ค ๋Œ์•„๋‹ค๋…€์•ผ ํ•˜๋ฏ€๋กœ ํ‹ฐ์ผ“๋งŒํผ ์ด๋™. for (int i = 0; i < tickets.length; i++) { // ์‹œ์ž‘์ ๊ณผ ํ‹ฐ์ผ“์˜ ์ถœ๋ฐœ์ ์ด ๊ฐ™๊ณ , ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ // ์ด์ „ ๋„์ฐฉ์ ์ธ [i-1][1]๊ณผ [i][0]์ด ๋™์ผํ•ด์•ผํ•œ๋‹ค.(๊ทธ๋ž˜์•ผ ์ž˜ ๋„์ฐฉํ•œ ๊ฒƒ) if (start.equals(tickets[i][0]) && !visited[i]) { // ๋ฐฉ๋ฌธ์ฒ˜๋ฆฌ visited[i] = true; // A->B๋กœ ๊ฐ”์œผ๋ฏ€๋กœ B๊ณตํ•ญ์—์„œ ->C๋กœ ๊ฐ€์•ผํ•œ๋‹ค. // ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์‹œ์ž‘์ ์ด B๊ณตํ•ญ์ด ๋˜์–ด์•ผํ•˜๋ฏ€๋กœ ticket[i][1]์ด ๋œ๋‹ค. dfs(tickets[i][1], route + " " + tickets[i][1], tickets, count + 1); visited[i] = false; } } } public static void main(String[] args) { Solution s = new Solution(); String[][] tickets = { /*y=0*/ /*y=1*/ /*x=0*/{"ICN", "SFO"}, /*x=1*/{"ICN", "ATL"}, /*x=2*/{"SFO", "ATL"}, /*x=3*/{"ATL", "ICN"}, /*x=4*/{"ATL", "SFO"} }; System.out.println(Arrays.toString(s.solution(tickets))); } }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ