프로그래머스 43164번 여행경로 Java

: ) YOUNG·2025년 2월 10일
1

알고리즘

목록 보기
450/458
post-thumbnail

프로그래머스 43164번 여행경로 Java

https://school.programmers.co.kr/learn/courses/30/lessons/43164?language=java

문제



생각하기


  • 그래프

  • 오일러 경로



동작





결과


코드



import java.util.*;
import java.util.Collections;
import java.util.Objects;

class Solution {
    public List<String> solution(String[][] tickets) {
        String[] answer = {};
        
        
        int N = tickets.length;
        Arrays.sort(tickets, (o1, o2) -> {
            return o1[0].compareTo(o2[0]);
        });
                
        LinkedHashMap<String, LinkedList<String>> adjList = new LinkedHashMap<>();
        for(int i=0; i<N; i++) {
            adjList.put(tickets[i][0], new LinkedList<>());
        }
        
        
        for(int i=0; i<N; i++) {
            adjList.get(tickets[i][0]).offer(tickets[i][1]);
            Collections.sort(adjList.get(tickets[i][0]));
        }
        
        
        ArrayDeque<String> que = new ArrayDeque<>();
        List<String> list = new ArrayList<>();
        que.offer("ICN");
        
        while(!que.isEmpty()) {
            String cur = que.peekLast();
            
            if(adjList.get(cur) != null && !adjList.get(cur).isEmpty()) {
                String next = adjList.get(cur).poll();
                que.offer(next);
            } else {
                list.add(que.pollLast());
            }
        }
        

        Collections.reverse(list);        
        return list;
    } // End of solution()
} // End of Solution class

0개의 댓글

관련 채용 정보