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

duuk님의 프로필 이미지
duuk

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

11. 등산 경로(DFS)

이번문제는 체크가 꼭 필수인가요?

작성

·

192

4

등산로는 a -> b로 갈 때 b가 항상 a보다 크니 탐색을 할 때 뒤로 갈 수 없으니까.. 체크를 안해도 되지 않을까요?!!

답변 2

0

좋은 질문입니다!

0

김태원님의 프로필 이미지
김태원
지식공유자

네. 그렇네요. 이 문제같은 경우 방문체크를 굳이 하지 않아도 방문한 곳으로 절대 가지 않는 경우였습니다. 

미처 생각 못했습니다. 감사합니다.^^

그런데 ch가 없으면 계속 실패한 곳으로 가서 0으로 나오게 되지 않나요?

김태원님의 프로필 이미지
김태원
지식공유자

재귀함수는 한번 탐색한 경로를 다시 탐색하지는 않습니다. ch없이 한 번 해보세요. 100점 나올겁니다.

해보니까 100점 나옵니다..!
제가 지금 좀 헷갈려서 그런데...이 문제에서 b>a보다 크다는 조건 때문에 다시 탐색하지 않는건지, 아니면 재귀함수가 원래 한번 탐색한 경로를 다시 탐색하지 않는건가요 ?

후자라면 dfs에서는 굳이 ch를 사용할 필요가 없는거네요
   
전자라면 dfs가 가장 깊은 깊이까지 간다음 다시 뒤로 백(back)하는거랑은 별개로 말씀하신거죠?

뭔가 두서없이 질문한거 같아서 미리 죄송합니다 ㅠ 그만큼 명확히 그려지지 않아서 그런거같습니다

전자가 맞습니다. b>a조건이 없으면 0, 0 에서 1,0 탐색했다가 다시 0,0을 탐색하니까요. 

"전자라면 dfs가 가장 깊은 깊이까지 간다음 다시 뒤로 백(back)하는거랑은 별개로 말씀하신거죠?"

이 질문은 dfs 내부의 if~else 문을 보시면 답이 될 것 같네요

duuk님의 프로필 이미지
duuk

작성한 질문수

질문하기