noerrorplz   2년 전

위상정렬을 이용해, node* Q배열에 정점들마다 하위 문제들을 입력 받을 때 연결리스트로 연결해두고, 진입차수도 배열로 저장했습니다.

그 다음 in_degree가 0인 정점들을 전부 우선순위 큐에 넣어준 다음에, 우선순위큐에 남은 정점이 없을 때까지 bfs를 돌렸는데, 시간초과가 납니다. 제가 알고리즘을 잘못 이해한건지, 코드를 잘못 짠건지 모르겠습니다.. 몇몇 예시를 직접 만들어서 넣어보기도 했는데 이상은 없었습니다.

아니면 코드 중에 시간초과를 불러일으킬만한 함수가 쓰인걸까요?


추가적으로 c++이 아닌 그냥 c로 해결한 코드를 잘 못봐서,, 제가 코딩이 잘 짜고 있는 건지도 평가 부탁드릴 수 있을까요 개인적으로 제 코드는 뭔가 조잡해 보이는 것 같네요

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