강의

멘토링

로드맵

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

제비꼬리님의 프로필 이미지
제비꼬리

작성한 질문수

2026 코딩테스트 올인원 [JAVA]

[문제풀이] 무료행사(2)

DFS/BFS

작성

·

23

1

  • 학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!

  • 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.

  • 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.

편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~

안녕하세요.

 

제가 DFS/BFS부분이 많이 약해서 ㅠㅠ 질문입니다.

lockers = [[1, 2], [3], [], [0]] 이런 이중행렬인데 인접리스트로 코드 변환 안하고 생각해도 괜찮다는 의미 인거죠…?

 

감사합니다.

답변 2

0

개발남노씨님의 프로필 이미지
개발남노씨
지식공유자

안녕하세요 제비꼬리님.
lockers = [[1, 2], [3], [], [0]]

이거 자체가 인접리스트라고 생각하시고 코드 구현하시면 됩니다! :)

0

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

제비꼬리님, DFS/BFS에 대한 질문을 주셨군요. 질문하신 내용에서 lockers = [[1, 2], [3], [], [0]] 같은 이중 리스트 구조가 이미 인접 리스트의 형태로 주어져있다는 것을 의미합니다. 인접 리스트란 각 노드에 연결된 다른 노드들을 리스트 형태로 표현한 것입니다. 예를 들어, lockers[0]은 노드 0과 연결된 노드 1과 2를 의미합니다. 따라서 이 이중 리스트 구조를 그대로 사용해서 탐색 알고리즘을 구현하실 수 있습니다.

인접 리스트를 통해 DFS와 BFS를 구현할 때는 인접 행렬에 비해 메모리 사용량이 적고, 특정 노드에서 연결된 노드들을 빠르게 탐색할 수 있어 유용합니다.

DFS에서는 주로 재귀를 통해 깊이를 우선으로 탐색하거나 스택 자료구조를 사용할 수 있으며, BFS에서는 큐를 이용해 대기열에 있는 노드들을 순차적으로 탐색합니다. 이 중 본인의 이해도나 문제 특성에 맞는 방향으로 DFS 혹은 BFS를 선택해서 연습해 보세요.

더 구체적인 구현 방식이 필요하시면 알려주세요. 이해를 깊이는 데 도움이 되기를 바랍니다. 참고할 만한 자료로는 인프런의 코딩테스트 강의 등을 추천 드립니다. 질문해 주셔서 감사합니다.

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

제비꼬리님의 프로필 이미지
제비꼬리

작성한 질문수

질문하기