java 343

[도구정리] 위상정렬(Topological Sort)

🤔 A -> B 관계가 성립하는 DAG에서 어떻게 정렬을 할 수 있을까?DAG부터 알아보자.DAG란 Directed Acyclic Graph의 약자로 방향성이 있으며 사이클이 없는 그래프를 말한다. 무슨 말일까?위의 그림을 보면 더욱 명확하게 이해가 될 것이다. A -> C, A -> B의 간선이 존재하지만 C -> A, B -> A로 갈 수 있는 방법이 없기 때문에 사이클이 존재하지는 않는다. 우리는 이러한 관계에서 어떠한 규칙에 따라 이를 정렬하고 싶은 경우를 알아볼 것이다.📖 위상정렬이란? 사이클이 없는 방향 그래프(DAG)의 모든 노드를 방향성에 거스르지 않도록 순서대로 나열하는 것 여기서 하나의 용어를 알아야 한다. 바로 진입 차수(Indegree)이다.예를 들면 2의 경우 자신에게 들어오는..

[백준] 13424번. 비밀 모임(JAVA)

문제https://www.acmicpc.net/problem/13424풀이(14분)import java.util.*;import java.lang.*;import java.io.*;public class Main { // N개의 방 1~N번 번호 붙어있음 // N개의 방은 M개의 통로로 연결 ( 양방향 통로이며 자연수 길이 가짐 ) // K명이 참여 // N개의 방중에서 한개씩 각각 위치해있음(K 방 개수가 200이하인지 생각하자. // 학생들이 위치한 점을 List로 저장해두고, 그 점에서 도달하는 점들의 거리를 누적합하여 해결하자. static int T, N, M; static int[][] floyd; static final int MAX = 1_000..