알고리즘
[PGS] 프로그래머스 - 여행경로 (JAVA)
애용쓰
2024. 4. 18. 01:53
https://school.programmers.co.kr/learn/courses/30/lessons/43164
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
static int[] visited;
static PriorityQueue<String> pq;
public void dfs(String cityName, String[][] tickets, String path, int node){
if(node==tickets.length){
//다 돌았다
pq.add(path);
return;
}
for(int i=0;i<tickets.length;i++){
if(visited[i]==0 && cityName.equals(tickets[i][0])){
visited[i] = 1; //방문
dfs(tickets[i][1],tickets,path+","+tickets[i][1],node+1);
visited[i] = 0; //백트래킹
}
}
}
public String[] solution(String[][] tickets) {
visited = new int[tickets.length];
pq = new PriorityQueue<>();
dfs("ICN",tickets,"ICN",0);
String tmp = pq.poll();
String[] answer = {};
answer = tmp.split(",");
return answer;
}
}
방문여부 확인하는 것을 잊지 말자 !!