engus0705   2년 전

안녕하세요 해당 문제의 탐색을 재귀로 풀어보려고 다음과 같은 함수를 만들었는데 비주얼라이저로 보니 if k == arr1[mid]:에서 return 1 까지 잘 가다가

갑자기 else로 호다닥 달려가서 0을 반환해버립니다. 어디가 잘못된걸까요

djm03178   2년 전

0이 아니라 아무것도 반환하지 않아서 None이 반환된 것입니다. 12번째 줄에서 1을 반환한 것은 딱 그 호출에서만 반환한 것이고, 이것을 호출했던 BSF에서까지 그것을 그대로 반환하지는 않습니다. 예를 들어, BSF 함수 (A)가 14번째 줄에서 BSF 함수를 재귀호출하여 호출된 BSF 함수 (B)가 1을 반환했다고 해서 (A)도 그대로 1을 반환하는 것이 아니라, (A)는 그대로 아래로 진행하여 함수의 끝에 도달하여 아무 반환값 없이 종료됩니다. 파이썬에서 아무런 반환을 하지 않는 것은 None을 반환하는 것과 같습니다.

댓글을 작성하려면 로그인해야 합니다.