d252b   6년 전

어느 케이스에서 틀렸는지 답답하네요. 

그냥 평범함 위상정렬 문제 같은데... 

khj94811   6년 전

반드시 indegree가 0이 되지 않더라도 건물이 완료되는 시간에 관여할 수 있습니다.

d252b   6년 전

그게 무슨 말씀이신지 잘 이해가 안되네요

어떤 건물과 관련이 있을 경우, 차수의 증가,감소 통해서 컨트롤 하게 되는데,

차수가 0이 되지 않는 상황에서 다른 건물에 영향을 준다는 게 어떤 의미인가요??

차수에 각 건물끼리 서로에 대한 영향이 반영되어 있지 않나요?


khj94811   6년 전

A를 만들기 위해서 B와 C를 모두 만들어야 한다면 B와 C가 모두 A에 영향을 주겠죠??
하지만 님의 코드를 보면 B와 C중 A의 진입차수를 0을 만들게 되는 건물에 한해서만 영행을 주게 되어있습니다

poia0304   6년 전

캡처.PNG

만약 A,B가 끝나는 시간이 다르다면 둘 중 늦게 끝나는 시간 + C를 짓는데 걸리는 시간이 답이 되어야 합니다.

하지만 위 소스 대로라면 A,B중 만약 B가 시간이 더 오래 걸린다고 할 때, B가 먼저 건설된 뒤, A가 건설된다면 C를 짓는데 걸리는 시간은 A+C시간이 됩니다.

따라서 우선순위 큐를 통해 A가 먼저 건설된 뒤, B가 건설 되도록 해줘야 합니다. 

댓글을 작성하려면 로그인해야 합니다.