Hard deck/reindexing d2
028 : 트리의 지름 구하기
서버관리자 페페
2023. 6. 23. 10:46
가중치를 사용하기 위해 Edge Class를 구현했더라도(ArrayList<Edge>[] TP) 와 달리 BFS에서는 Edge를 가져와 pointer로만 탐색 사용, Patch로 value를 사용해도 된다(반은 넣고 반은 사용)
* 하나의 BFS시작에서 먼 노드, 그리고 그 노드에서 반대 방향으로 먼 노드 2개만 판단하므로,
중복해서 업데이트 할 필요가 없다
(D patch시 if 조건 X)
불순물은 if pipeLine으로 따로 빼 둬서 만약 -1이 있다면 자동으로 해당 위상 공간으로 흘러갈 것이다. 그러므로 나머지 정제된 것은 원래대로 바로 값들을 TP로 넣어주면 된다
(단방향 작업)
BFS는 Print작업이 아닌, D만 건드려서 업데이트한다
BFS(시작) + 먼곳의 pointer
BFS(먼곳) + 다음 먼곳 Print