←ENG-DSA-004CI/CD Pipeline Dependency Resolution (Graphs)
00:00
🐍 Python Idle
Mode:Web

CI/CD Pipeline Dependency Resolution (Graphs)

CompaniesGitLab, Vercel
Est. Time~40 min
LevelMid
GraphsTopological SortBFS
🚨 P0 Incident
GitLabVercel

GitLab's monorepo CI/CD system failed to build after a developer accidentally created a circular dependency between packages. The build runner hung indefinitely waiting for Package A (which waits for B, which waits for A). Before executing any build, the system must compute a valid topological order and fail fast if a cycle exists.

πŸ“₯ Assigned to:You β€” Mid Engineer
Your Task

Our monorepo build system fails because packages depend on each other. Given packages and dependency pairs (A depends on B), return a valid build order. Raise an error if circular dependency exists.

⏱ Time: O(V + E)πŸ’Ύ Space: O(V + E)
Example 1
Input:Β Β pkgs=['A','B','C'], deps=[('B','A'),('C','B')]
Output:Β ['A','B','C']
Example 2
Input:Β Β pkgs=['X','Y','Z'], deps=[]
Output:Β Any order of X, Y, Z
πŸ”’ +3 hidden test cases β€” revealed on Submit
Hints
Loading editor…
Test Output
β–Ά Run Code to test against examples Β· Submit to judge all 5 test cases
EngPrep β€” Real Engineering. Real Interviews.