• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

안녕하세요 질문입니다.

21.03.26 14:23 작성 조회수 173

0

제가 재귀가 너무 약해서 그런데 혹시 재귀나 DFS 할때 디버깅은 어떻게 하시는 편인가요? 이런 문제들이나 사이즈카 큰 재귀 문제들은 일일이 하기엔 너무 방대하고 복잡하던데. 재귀에서 막혀서 고민입니다. 스택 옆에 그림을 그려놓고 일일이 그려가면서 해야할까요? 다른 문제들은 디버깅 하면서 하면 이해가 가던데 재귀만 쓰면 유난히 어려운거 같습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요^^

재귀 기초문제부터 재귀가 뻗는 트리형태와 스택을 그려가면서 하는게 제일 좋습니다.

재귀는 디버깅으로 이해하는게 아니라 재귀가 호출되는 상태트리를 그려가면서 이해를 해야 합니다.

그러다 보면 이런 미로탐색도 대충 이렇게 뻗어가다가 막히면 뒤로 백하고 뭐 이러겠네... 하는 식으로 예측하고 짠 다음에 재귀함수 안에서 내가 알고 싶은 변수값이나 배열을 출력해 그 값의 변화를 살펴보는 식으로 합니다.

"58번, 59번, 64번(중요), 82번, [선수지식]조합구하기"  이 5개를 상태트리와 스택을 그려가면서 연구해보시기 바랍니다. DFS가 단번에 되지는 않습니다. 시간이 많이 필요한 영역입니다. 조급해 하지 마시고 천천히 하나하나 해보세요. 느낌이 오는 날이 있을 겁니다.

Solioquies님의 프로필

Solioquies

질문자

2021.03.26

감사합니다. 이때껏 계속 재귀 하면서 일일이 디버깅 하면서 하는데 되게 오래걸리고 헷갈리더라구요..

그리고 이번에 자바 강의 여셨던데 정말 감사합니다. (자바 알고리즘 강의가 많이 없어서.. 특히 컬렉션 부분 특히 벡터 쓴다던가 어레이리스트 2번 써서 인접리스트 쓰는게 C++ 과 비슷 한듯 달라서 많이 헷갈렸습니다.) ㅠ 자바 강의도 잘 듣겠습니다.

넵. 감사합니다! :D