본문 바로가기
알고리즘/SWEA

[Java] SWEA 1267번 작업순서

by 컴공맨 2021. 5. 30.
 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


풀이

위상정렬을 사용하여 해결했습니다.


코드

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = 10;
		StringBuilder sb = new StringBuilder();
		
		for (int tc = 1; tc <= T; tc++) {
			sb.append("#").append(tc).append(" ");
			int V = sc.nextInt();
			int E = sc.nextInt();
			int[] indegree = new int[V];
			int[][] adj = new int[V][V];
			
			for (int i = 0; i < E; ++i) {
				int from = sc.nextInt() - 1;
				int to = sc.nextInt() - 1;
				
				adj[from][to] = 1;
				indegree[to]++;
			}
			
			Queue<Integer> queue = new LinkedList<Integer>();
			for (int i = 0; i < V; ++i) {
				if (indegree[i] == 0) {
					queue.offer(i);
				}
			}
			
			while (!queue.isEmpty()) {
				int node = queue.poll();
				sb.append(node + 1).append(" ");
				
				for (int i = 0; i < V; ++i) {
					if (adj[node][i] == 1) {
						indegree[i]--;
						
						if (indegree[i] == 0) {
							queue.offer(i);							
						}
					}
				}
			}
			
			sb.append("\n");
		}
		
		System.out.println(sb);
		sc.close();
	}
}

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > SWEA' 카테고리의 다른 글

[Java] SWEA 3499번 퍼펙트 셔플  (0) 2021.09.16
[Java] SWEA 1263번 사람 네트워크2  (0) 2021.05.24
[Java] SWEA 4014번 활주로 건설  (0) 2021.05.23
[Java] SWEA 2115번 벌꿀채취  (0) 2021.05.23
[Java] SWEA 5644번 무선충전  (0) 2021.05.08