이 문제의 조건 2를 보고
선후 관계가 있고, 이를 통해 전체 문제 푸는 순서를 결정하는 것이므로,
위상정렬을 사용해야 한다는 것을 캐치했다.
priority queue 는 백준 알고리즘 분류를 보고 써야 한다는 것을 깨달았다.
바로 3번 가능하면 쉬운 문제부터 풀어야 한다는 조건 때문이다.
위상정렬로 풀때, inode( 현재 문제보다 먼저 풀어야 하는 문제의 개수) 가 0 인 애들은
queue 에 push 가 되어있는데, 이 때 맨 앞에 들어간 애가 항상 제일 쉬운 문제라는 보장이 없다.
queue 에 push 된 문제들은 모두 어떤 순서로 와도 상관이 없는 애들인데,
여기서 가장 쉬운 문제가 pop 되어야 하므로
queue 를 priority queue 로 만들어서 쓰면 된다. 어차피 delete 시간 log n 이라
n logn 이라 충분히 시간안에 품. ㅎㅎ