herdson   4년 전

시도하기 전에 몇가지를 물어보고 싶습니다.

  1. 예제입력을 보면 딴 길로 새거나 굳이 갈 필요가 없는 노드가 보이는데, 그래프를 만든 후에 이 노드들을 솎아내는 작업이 선행되어야 통과가 될까요?
  2.  위상정렬을 건드리는건 이 문제가 처음인데 제 생각에는 당장 다음에 가장 느린 시간만 픽하는 그리디가 아닌가... 했지만

   1 : 20

     /            \

 2 : 400      3 : 22

  /                |

4 : 1          5 : 6000

  \                  /

         .....

이런 케이스가 분명 있을 거라고 생각이 됩니다.

혹시 이거 말고도 캐치가 필요한 입력이 있을까요?

djm03178   4년 전

  1. 불필요한 노드는 불필요한 채로 그대로 계산해도 상관 없습니다. 결과적으로 우리가 구하고자 하는 노드에게 어차피 영향을 안 줄 것이기 때문에 걸러내지 않아도 문제가 없습니다.
  2. 위상 정렬을 어떤 방법으로 하시느냐에 따라 다른데, 결국 어떤 노드의 값을 100% 확실하게 정하는 순간에 고려해야 할 경우를 다 고려할 수 있으면 됩니다. 위상 정렬을 해서 "A 건물을 짓기 전에 지어야 할 모든 건물들을 각각 짓는 최소 시간들"을 이미 구했다면, A 건물을 짓는 최소 시간이 얼마가 될지 바로 결정할 수 있습니다.

herdson   4년 전

ㄴ 감사합니다.

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