통나무들 사이에 이동할 수 있는지 여부를 판단하여 코드를 작성하였습니다.

참고적으로 A와 B 사이에 C가 존재해 A와 B 사이를 이동할 수 없어도 C를 통하여 이동할 수 있기 때문에 상관이 없다고 생각하고 코드를 작성하였습니다.

그런데 이 코드에서 메모리 초과가 납니다. 왜 그런지 알려주세요.           

kcan1416   4년 전

22번줄을 int x = Find(v1), y = Find(v2); 로 바꿔주세요

그리고 이 문제는 union-find를 사용하지 않고 반복문 하나로도 푸는게 가능합니다

실수가 있었네요

고쳐주셔서 감사합니다.

minjoonist   3년 전

@kcan1416 O(n) 으로 이 문제를 푸는게 가능한가요?

kcan1416   3년 전

정렬이 필요해서 O(NlogN)입니다 정렬 후 스위핑하면 됩니다

지금보니까 제가 오해가 생길 수 있도록 적어두었네요..

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