Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- inheritance
- 제네릭
- polymorphism
- 내부 클래스
- nextInt
- 객체지향
- enum
- 최소신장트리
- 백준
- 17472
- this
- 객체 지향
- 생성자
- 프림알고리즘
- 캡슐화
- Scanner
- Final
- 추상화
- python
- 다형성
- abstract
- 와일드카드
- Encapsulation
- 인터페이스
- 상속
- 버퍼비우기
- 추상 클래스
- 열거형
- java
Archives
- Today
- Total
쫑쫑이의 블로그
백준 2252 줄 세우기 Java [위상정렬] 본문
https://www.acmicpc.net/problem/2252
2252번: 줄 세우기
첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의
www.acmicpc.net
입력을 받고 B는 가중치를 주면서 A의 다음에 나올 수 있는 배열에 추가한다
학생들 중에서 가중치가 0인 인덱스를 큐에 넣고
큐에서 하나씩 빼면서 다음에 나올 수 있는 배열 반복문으로 돌면서
가중치 빼주고 가중치 0인 인덱스를 큐에 넣는 것을 반복한다
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int[] degree = new int[N + 1];
ArrayList<Integer>[] next = new ArrayList[N + 1];
Queue<Integer> queue = new LinkedList<>();
for (int i = 1; i <= N; i++) next[i] = new ArrayList<>();
for (int m = 0; m < M; m++) {
st = new StringTokenizer(br.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
degree[B]++;
next[A].add(B);
}
for (int i = 1; i <= N; i++) {
if (degree[i] == 0) queue.add(i);
}
while (!queue.isEmpty()) {
int now = queue.poll();
sb.append(now).append(" ");
for (int n : next[now]) {
degree[n]--;
if (degree[n] == 0) queue.add(n);
}
}
sb.setLength(sb.length() - 1);
System.out.println(sb);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 2467 용액 Java [투포인터] (0) | 2022.11.16 |
---|---|
백준 9328 열쇠 Java [구현, BFS] (0) | 2022.11.15 |
백준 2239 스도쿠 Java [백트래킹, DFS] (0) | 2022.11.13 |
백준 1987 알파벳 Java [DFS] (0) | 2022.11.12 |
백준 2568 전깃줄 - 2 Java [LIS] (0) | 2022.11.11 |