강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

애롱님의 프로필 이미지
애롱

작성한 질문수

38군데 합격 비법, 2025 코딩테스트 필수 알고리즘

2-10. 2주차 끝 & 숙제 설명

링크드 리스트 끝에서 k번째 값 출력하기

작성

·

8

·

수정됨

0

1. 현재 학습 진도

  • 몇 챕터/몇 강을 수강 중이신가요? 2주차

  • 어떤 알고리즘을 학습하고 계신가요? 2주차 숙제

  • 여기까지 이해하신 내용은 무엇인가요? 링크드리스트, 재귀

 

2. 어려움을 겪는 부분

  • 어느 부분에서 막히셨나요? 2주차 숙제 1번

  • 끝에서 k번째를 구하는게 문제잖아요? 근데 정답 코드를 보면 fastNode는 끝이 아닌 끝보다 한칸 더간거고, slownode(정답이 될)는 한칸 더간 fastnode에서 k번째 떨어질 경우 답이 되는데 while문을 fastnode.next is not None의 조건을 해줘야 링크드 리스트 끝에서 라는 문제의 의미에 더 맞지 않나요?

 

3. 시도해보신 내용

  • 문제 해결을 위해 어떤 시도를 해보셨나요?

  • 에러가 발생했다면 어떤 에러인가요?

  • 현재 작성하신 코드를 공유해주세요

 

이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

애롱님이 링크드 리스트의 끝에서 k번째 값을 구하는 문제에 대해 질문을 주셨군요! 이 문제는 두 개의 포인터를 사용하는 기법으로 해결할 수 있습니다. 이에 대해 간략한 설명과 함께 유사한 질문에 대한 링크를 제공해드리겠습니다.

두 개의 포인터 기법은 다음과 같은 방식으로 작동합니다:

  1. fastNode를 먼저 k번 이동시킵니다. 이는 slowNode가 시작점에서 특정 거리를 떨어지도록 합니다.
  2. fastNodeslowNode를 함께 이동시키며, fastNode가 리스트의 끝에 도달했을 때 slowNode는 끝에서 k번째 위치에 있게 됩니다. 여기서 핵심은 fastNode가 먼저 리스트 끝까지 이동한 후 slowNode의 위치를 점검하는 것입니다.

이 때, fastNode.next is not None을 조건으로 사용하면 fastNode가 리스트의 마지막 노드까지 가도록 제어할 수 있습니다. 이렇게 하면 slowNode가 정확히 k번째 위치에 있을 수 있게 됩니다.

관련 내용을 더 깊게 이해하고 싶은 경우, 아래 링크를 참고하시면 도움이 될 것입니다.

이해에 도움이 되셨기를 바랍니다. 추가적으로 궁금한 점이 있으면 언제든지 질문해 주세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드립니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

애롱님의 프로필 이미지
애롱

작성한 질문수

질문하기