[Algorithm] 토끼와 거북이 - 2
2023. 7. 28. 00:41
Information Technology/Algorithm
LeetCode 142번 문제 - Linked List Cycle 2 https://leetcode.com/problems/linked-list-cycle-ii/ 주어진 연결 리스트에서 사이클의 시작 노드 찾기 - 입력: 연결 리스트의 head - 출력: 사이클이 있으면 시작 노드, 없으면 null 리턴 - 토끼와 거북이 알고리즘으로는 만나는 거까진 알 수 있었는데 시작을 어디서 했는지는 모름 토끼와 거북이 알고리즘 2 - 시작 위치 찾기 토끼와 거북이는 같은 장소에서 출발 - 거북이가 한 칸을 이동할 동안, 토끼는 두 칸 이동 만약 연결 리스트 내에 사이클이 없다면 토끼와 거북이는 이동 중에 NULL 노드를 만날 것 만약 연결 리스트 내에 사이클이 있다면 토끼와 거북이는 언젠가 반드시 만나게 될 것 토..
[Algorithm] 토끼와 거북이 - 1
2023. 7. 26. 22:07
Information Technology/Algorithm
LeetCode 141번 문제 - Linked List Cycle https://leetcode.com/problems/linked-list-cycle/ - 입력: 연결 리스트의 head - 출력: 사이클이 있으면 true, 없으면 false를 리턴 - 공간을 O(1)만 사용하고 풀기 - 그냥 푸는 건 easy인데, O(1) 메모리를 사용해서 푸는 건 간단하지 않음 - 위키피디아의 Cycle detection (순환 검출) 을 참고하면 자세히 나와 있음 토끼와 거북이 알고리즘 1 - 사이클 유무 판단 - 토끼와 거북이는 같은 장소에서 출발 - 거북이가 한 칸을 이동할 동안, 토끼는 두 칸 이동 - 만약 연결 리스트 내에 사이클이 없다면 토끼와 거북이는 이동 중에 NULL 노드를 만날 것 - 만약 연결 리..