배포 파이프라인에는 0번부터 n-1번까지 번호가 붙은 작업 n개가 있습니다.
빌드 서버는 작업을 몇 개든 동시에 실행할 수 있지만, 앞선 작업의 산출물을
기다려야 하는 작업은 같은 단계에서 함께 실행할 수 없습니다.
의존 관계는 deps[i] = [x, y] 꼴로 주어지며, "작업 x가 완전히 끝나야 작업 y를
시작할 수 있다" 는 뜻입니다.
파이프라인은 단계(stage)로 나누어 실행합니다. 한 단계에서는 그 시점까지 선행 작업이 모두 끝난 작업들을 전부 동시에 실행하고, 그 단계가 끝나야 다음 단계로 넘어갑니다.
모든 작업을 끝내는 데 필요한 최소 단계 수 를 반환하는 solution(n, deps) 함수를
작성하세요. 의존 관계가 순환해 어떤 순서로도 전부 실행할 수 없다면 -1을 반환합니다.
n=5, deps=[[0,2],[0,3],[2,4],[3,4]] → 3
1단계: 0, 1 (선행 작업이 없음 — 1은 아무 의존도 없는 독립 작업)
2단계: 2, 3 (0이 끝나야 시작 가능)
3단계: 4 (2와 3이 모두 끝나야 시작 가능)
n=3, deps=[[0,1],[1,2],[2,0]] → -1
0 → 1 → 2 → 0으로 이어져 시작할 수 있는 작업이 하나도 없습니다.
n=4, deps=[] → 1
의존이 없으므로 네 작업을 한 단계에서 모두 실행합니다.deps[i] = [x, y]에서 0 ≤ x, y ≤ n-1 이고 x ≠ y시간 복잡도 목표: O(n + deps.length)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.