처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
퀴즈 / 알고리즘 / 문제

플로이드 순환 감지(Floyd's Cycle Detection) 알고리즘의 핵심 아이디어는?

어려움 freeCodeCamp
보기 및 정답
A 느린 포인터와 빠른 포인터 두 개를 사용하여, 만나면 순환이 존재함을 O(1) 공간으로 감지한다
B 모든 방문 노드의 주소를 해시 세트에 저장한 뒤 중복 여부를 확인하여 순환을 감지한다
C 그래프의 모든 경로를 DFS로 완전 탐색하여 방문한 노드의 재방문 여부를 확인한다
D 각 노드에 방문 플래그를 설정하고, 탐색 도중 이미 방문한 노드를 만나면 순환으로 판단하는 방식이다

해설

플로이드의 '토끼와 거북이' 알고리즘은 한 칸씩 이동하는 느린 포인터와 두 칸씩 이동하는 빠른 포인터를 사용합니다. 순환이 있으면 두 포인터가 반드시 만나고, 없으면 빠른 포인터가 끝에 도달합니다. 추가 메모리 O(1)로 연결 리스트의 순환을 감지합니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기