Floyd's tortoise and hare algorithm
·
Computer Science/Algorithms
이 글은 주니온TV 아무거나연구소 및 다른 글을 참고하여 작성된 글입니다. 토끼와 거북이 알고리즘 - 서로 다른 속도로 움직이는 두 개의 포인터를 이용해서 O(n)의 시간 복잡도, O(1)의 공간 복잡도로 cycle detection problem을 해결하는 알고리즘 (https://en.wikipedia.org/wiki/Cycle_detection)이다. 주어진 링크드 리스트에 사이클 존재 유무를 확인할 수 있는 방법이다. 1. 토끼와 거북이는 같은 장소에서 출발한다. 2. 거북이가 한 칸을 이동할 동안 토끼는 두 칸을 이동한다. 3. 만약 연결 리스트 내에 사이클이 없다면 토끼와 거북이는 이동 중에 Null 노드를 만날 것이다.(사이클 없음) 4. 만약 연결 리스트 내에 사이클이 있다면 토끼와 거북이..