본문 바로가기
Algorithm/BOJ

[BOJ]14567번: 선수과목 (Prerequisite)

by BAYABA 2022. 3. 22.

문제: https://www.acmicpc.net/problem/14567


위상정렬 문제입니다.

 

과목들 간의 우선순위를 저장을 한 후, 한 과목 당 자신의 선수 과목이 몇 개나 있는지 parentCnt[] 배열에 저장합니다.

 

선수과목이 0개인 (parentCnt[k] == 0) 과목들부터 큐에서 꺼내오면서 해당 과목을 선수 과목으로 가지고 있는 후수 과목들의 parentCnt[k] 값을 1씩 빼줍니다.

 

특정 과목을 들을 수 있는 시점은 parentCnt[k] == 0 일 때 해당 과목을 수강할 수 있습니다.

 

현재 큐에 들어있는 사이즈만큼 루프를 돌면서 (한 학기에 해당) 위 과정을 반복하면 됩니다.


코드: https://github.com/cotchan/algorithm/blob/main/BOJ/BOJ14567.java

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ]2458번: 키 순서  (0) 2022.03.23
[BOJ]10282번: 해킹  (0) 2022.03.22
[BOJ]2665번: 미로만들기  (0) 2022.03.22
[BOJ]13116번: 30번  (0) 2022.03.17
[BOJ]14425번: 문자열 집합  (0) 2022.03.15