# 그래프와 인접 리스트 아래의 무방향 그래프를 인접 리스트로 만들면 그 오른쪽과 같습니다. ![클라우드스터딩-자바-무방향-그래프-인접-리스트-구현](https://i.imgur.com/i30eS8T.png) ## 문제 아래의 방향 그래프를 인접 리스트로 만드는 코드를 구현하려 한다. ![클라우드스터딩-자바-방향-그래프-인접-리스트-구현](https://i.imgur.com/Ly5B8ag.png) 출력 예와 같은 결과를 얻도록, 주어진 코드를 완성 및 적절한 입력 값을 대입 하시오. ## 입력 예 입력 형식은 아래와 같습니다. - LINE 1: 정점의 수 - LINE 2: 간선의 수 - LINE 3: 간선의 정보 아래는 4개의 정점과 4개의 간선 {<0,1>, <0,2>, <2,0>, <3,2>} 에 대한 입력입니다. ``` 4 4 0 1 0 2 2 0 3 2 ``` ## 출력 예 ``` Vertex[0] -> 2 1 null Vertex[1] -> null Vertex[2] -> 0 null Vertex[3] -> 2 null ```
관련 강의로 이동

코드: java 1.8

import java.util.Scanner; public class GraphPractice2 { public static void main(String[] args) { // 입력값 받기 Scanner input = new Scanner(String.join(" ", args)); // 변수 생성 int nodeCnt = input.nextInt(); // 정점 수 int lineCnt = input.nextInt(); // 간선 수 // 그래프 및 정점 생성 DirectedGraph graph = new DirectedGraph(nodeCnt); // 간선 추가 for (int i = 0; i < lineCnt; i++) { int startNode = input.nextInt(); int endNode = input.nextInt(); graph.addEdge(startNode, endNode); } // 인접행렬 출력 graph.printMatrix(); } } class DirectedGraph { private int n; // 정점 수 private Node[] list; // 인접 리스트 // 정점 V = { 0, 1, ..., n-1 }를 갖는 그래프 생성 public DirectedGraph(int n) { /* 1. 그래프의 생성자를 작성하세요. */ } // 간선 <start, end>를 추가 public void addEdge(int start, int end) { /* 2. 간선 추가 메소드를 구현하세요. */ } // 모든 인접 리스트를 출력 public void printMatrix() { /* 3. 각 정점에 대해 연결된 정점들을 출력하세요. */ } } class Node { int vertex; Node next; public Node(int vertex, Node next) { this.vertex = vertex; this.next = next; } }

입력

정답이 궁금하다면? 코드를 제출해보세요!