혹시 푸셨으면 죄송합니다.
num과 nnum이 이미 묶여 있는 상황에서 높이의 최솟값을 비교할 때
d[num] < d[nnum]이 아니라 d[num] < d[find(nnum)]으로 해야 할 것 같습니다.
그룹에서 가장 높이가 낮고 비가 내린 지 오래 된 칸을 parent로 기록하고 num을 parent의 높이와 비가 내린 시간과 비교해야 하는데
형님이 작성하신 코드는 num을 parent의 높이와 비가 내린 시간과 비교하지 않는 것 같아서 말씀드립니다..
2차원 배열로 해결하려 했다가 덕분에 1차원 배열로 변경해서 해결했습니다 감사합니다!
kth990303 2년 전 1
유니온 파인드를 이용해 상하좌우 결합할 때,
merge 함수에서 최소값을 가진 좌표로 갱신할 수 있도록, 값이 같다면 visit이 더 작은(더 오래된) 좌표로 갱신할 수 있도록 코드를 짰습니다.
반례나 틀린 점을 찾습니다. 아예 알고리즘이 틀렸을 가능성도 있을 것 같긴 합니다만... ㅠㅠ
감사합니다.