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

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

김영한의 실전 자바 - 중급 2편

직접 구현하는 연결 리스트2 - 추가와 삭제1

직접 구현하는 연결 리스트2- 데이터 추가 삭제1, 코드 리뷰 좀요.

해결된 질문

작성

·

78

·

수정됨

0

 학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.


1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
안녕하세요. 영상 강의를 보면서 영상에 나온 그림을 보면서 코드를 만들어봤습니다.

그래서 코드 리뷰 좀 받고 싶게 되더군요.

좀 부족하지만 올립니다.

힌트는 동영상에 나오는 그림에 나오는 노드 연결 했을때 나오는 코드(초록색 으로 칠해져 잇는 그림 들) 를 보고 영상을 돌려보면서 만들었습니다.

메인이 된것은 NodeMain3에서 스테틱 메서드 입니다.

반환이 안되면 값이 똑같이 나와서 반환을 해주었습니다.(이유를 모르겠음)

image.png

메인

image.png

 

코드 결과

image.png

추가1

인덱스 리무브에서, 맨마직꺼 리므브는 안되겟네요. 올리고나서 발견..

추가2

설명 하라고 하신다면 솔직히 못 하겠습니다. sout로 node 값 찍어 보고, 어찌저찌 하다가 된거 라서요.

 

답변 부탁 드립니다.

 

답변 3

1

안녕하세요. 생각하는자님, 공식 서포터즈 David입니다.

코드리뷰를 해드리면 좋지만 하루에도 많은 질문이 올라오고 있습니다.

이로인해 주로 강의와 직접적으로 연관된 질문에 답변드리고 있는 점 양해부탁드립니다:)

 

생성형 AI 서비스(ChatGPT, Claude)들의 무료버전을 사용하시면 비교적 크지 않은 코드의 경우 충분히 리뷰를 받아볼 수 있습니다. 작성하신 코드를 모두 프롬프트에 넣어 해당 코드를 원하시는 기준(예: 객체지향적인가? 확장에 유연한가? 등)을 바탕으로 리뷰 요청해보시는 방법도 있으니 참고해 주세요.

감사합니다.

davide님 예 알겠습니다.

1

어떤 부분에서 리뷰를 요청 하시는지를 넣어주셔야 그 부분에 대해서 답변을 할 수 있을 것 같습니다.

ppj2130님 이런 식으로 코드를(indexAdd, remove) 짜도 되는지 물어본거 였는데, 답변을 안해줘도 괜찮습니다.

어느 정도 ai의 불신이 있어서 믿으면서도 안 믿는게 있어서요.

그래서 하루 놔도고 답변이 없으면 ai 인턴의 답변이 괜찮다고 생각하고 해결 표시 누르려고 햇습니다. (ai를 불신한 이유는, ai가 검색 한게 틀릴 수도 있을수도 있다는 생각이 있기도 하거든요)

1

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

생각하는자님께서 진행하신 LinkedList 구현과 관련한 코드 리뷰 요청에 대해 잘 이해했습니다. LinkedList는 데이터 구조를 직접 구현하는 데 있어 많은 학습 기회를 제공하며, 특히 노드의 연결과 관련된 부분에서는 정확한 이해가 필요하지요.

LinkedList를 구현할 때 자주 접하는 문제는 다음과 같습니다:

  1. 노드의 연결/분리: 노드를 새로 연결하거나 제거할 때, 이전 노드와 다음 노드의 연결을 정확히 처리해야 합니다. 이는 LinkedList의 핵심입니다.

  2. 첫 번째 및 마지막 노드 처리: 리스트의 처음과 끝에서 노드를 추가하거나 제거하는 작업은 일반적인 노드 처리와 다를 수 있기 때문에 주의가 필요합니다.

  3. 인덱스를 통한 접근: 노드의 인덱스를 기반으로 접근할 때, 경계 조건(예: 인덱스가 0이거나, 리스트의 크기보다 크거나 같을 때)에 대한 처리가 필요합니다.

제시된 코드와 질문에서 특별히 언급된 “반환이 안되면 값이 똑같이 나오는 문제”는, 아마도 노드를 추가하거나 제거할 때 반환 타입이나 처리 방식에서 연관성이 있을 수 있습니다. 만약 메인 메서드가 노드를 조작한 뒤 결과를 제대로 리턴하지 않거나, 노드 간의 연결이 제대로 갱신되지 않으면 이와 같은 문제가 발생할 수 있습니다.

Linked List 관련 구현에서 발생할 수 있는 몇 가지 일반적인 문제 및 해결 방법에 대해 설명한 이전 질문들이 있습니다. 이 질문들이 직접적인 도움이 될 수도 있습니다:

이미지와 함께 제공해 주신 코드의 예시들은 잘 구조화된 프로젝트 예시로 보이며, 이러한 문제를 해결하기 위한 실험과 검토 과정에서 변경 사항을 시각적으로 추적하는 데 유용하게 사용할 수 있을 것입니다.

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

ai 인턴이 추천해준 질문들을 보는데, 70%이상이 질문을 이해하지 못하는 게 대부분 인데, 어떤 이유 에서 추천 해주는 건지 궁금하네요.

생각하는자님의 프로필 이미지
생각하는자

작성한 질문수

질문하기