LinkedList 과제 Fast, slow 포인터
43
1 asked
1. 현재 학습 진도
2챕터 과제, 끝에서 K번째 노드값 구하는 문제
LinkedList
2. 어려움을 겪는 부분
fast 포인터를 k만큼 움직이고 slow, fast를 동시에 움직여 fast노드가 끝에 도달때까지 반복해 k만큼 떨어진 slow노드를 반환하는것은 이해했습니다.
그런데 fast 노드를 끝까지 보내는 While 문 조건에서 저는 fast.next가 없을 때 가 마지막 노드라고 생각했습니다.
하지만 선생님이 실제로 구현할 때는 이전에 구두로 설명하신것과는 약간 다르게 fast 가 마지막 노드가 아닌 거기서 한번 더 반복되어 fast == None 일때까지 움직여 k번째 노드를 찾으시더라고요.
왜 마지막노드에서 멈추는게 아니라 설명과 좀 다르게 2개의 포인터를 한칸씩 더 움직여 none이 될때까지 움직이도록 했는지 궁금해 강의 끝 시각화 해주신 부분을 봤습니다.
강의 끝에 시각화 하는 부분에서도 첫번째 풀이방법의 답은 10, 두번째 풀이방법의 답은 9가 나오면서 각 풀이방법의 정답이 달라진것 처럼 나오게 됐습니다.
구두로 설명하셨던 것보다 결국 index를 한칸 더 가서 fast가 None이 돼야 정답이 되던데 일반적으로 LinkedList 문제에서 마지막 노드까지 반복문을 돌린다고 가정하면 원래 currentNode가 None이 될때까지 돌려서 푸는건가요???
이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
김규태님, 질문 주셔서 감사합니다!
질문하신 LinkedList에서 fast, slow 포인터를 이용한 K번째 노드 찾기 문제에 대해 설명드리겠습니다.
LinkedList에서 fast 포인터를 먼저 k만큼 움직인 후에 slow와 fast를 함께 움직이면서 fast가 None에 도달했을 때 slow가 가리키는 노드가 끝에서 K번째라는 것을 이해하셨군요.
여기서 fast 포인터가 None이 될 때까지 반복문을 돌리는 이유를 설명드리겠습니다. 이는 마지막 노드를 포함하여 k개의 노드를 앞서 보내기 위함입니다.
fast포인터를k만큼 먼저 전진시킵니다.
- 그런 다음,
slow와fast를 함께 이동시키되fast가None이 될 때까지 이동시킵니다.
이렇게 하는 이유는, fast가 None이 되면 slow가 정확히 끝에서 k번째 노드에 위치하게 되는 것과 같기 때문입니다. fast가 끝 노드를 지나 None에 도달해야만, slow가 정확하게 k번째 노드를 가리키게 됩니다. 이는 일반적으로 LinkedList와 같은 구조에서 빠르게 K번째 노드를 찾는 알고리즘입니다.
보통 LinkedList 문제에서는 currentNode가 None이 될 때까지 반복문을 돌리는 것이 관례입니다. 이는 명확하게 링크드 리스트의 끝을 확인하는 방법이기도 합니다. 김규태님의 질문은 좋은 이해를 돕기 위해 필요한 중요한 논점을 포함하고 있었습니다.
더 궁금하신 부분이 있으면 언제든지 질문해 주세요! 감사합니다. 😊
강의 관련하여 더 많은 정보가 필요하시면 여기를 방문해주세요: 인프런
코딩테스트 처음인데 이런 공부방법이어도 괜찮을까요
0
35
1
3-3 정렬-2 선택정렬 로직
0
30
1
링크드 리스트 끝에서 k번째 값 출력하기
0
33
1
투포인터 시간복잡도
0
42
1
수강평 작성 후 자료
0
45
2
수업교재 링크 오류
2
103
2
프로그래머스에서 제출 후 채점시 틀림ㅠ
0
119
2
1-10 알고리즘 더 풀어보기(2) 질문 있습니다
0
66
2
문제 풀이 방식 관련 질문입니다!
0
80
2
1-5 알고리즘과 친해지기 (2) - 최빈값찾기 질문 있습니다
0
82
2
수업자료 pdf 받고싶습니다
0
98
2
강의 자료 오류 수정
0
67
1
2-10 더하거나 빼거나 관련 질문입니다
0
58
2
3-8 해쉬 -2
0
45
2
Linked List Element Delete Explanation Problem
0
61
2
강의3-4 스택 탑 문제
0
73
2
코드스니펫 입출력 케이스에 오류가 있는것 같아요
0
93
3
링크드 리스트 원소 찾기 구현 방식 질문드립니다.
0
71
2
1874 - 스택 문항
0
77
2
DP Java 예제 자료형 오버플로우 문제
0
95
2
4-9 4주차 숙제중 농심라면 문제
0
103
2
DFS 에서 스택을 사용하는 이유
1
177
3
들여쓰기가 햇갈리네요
0
117
2
강의자료 5일차 11. 카카오 추가 코딩 테스트 - 4 java코드가 잘못되어 있습니다.
0
48
2

