10번째 줄은 종단점에서의 리턴으로, 확실히 값을 반환합니다.
하지만 그 외에도 리턴을 선언해주셔야하는 이유는 이 함수가 재귀방식이기 때문인데요.
깊이가 2인 재귀방식을 생각해볼게요.
메인 - 재귀1 - 재귀2 순서로 실행되고 재귀2가 종단점을 만나 값을 리턴한다고 가정합시다.
이 경우 재귀2의 리턴값을 받는건 메인이 아니라 재귀 1이에요.
메인 - 재귀1(리턴값 들고있음) 상태가 되는데, 재귀1은 종단점이 아니죠. 왜냐면 재귀2를 호출했었으니까요.
따라서 올라온 리턴값이 아직 메인에 전달되지 않은건데, 종단점 외에 리턴 선언을 안하면 이 값이 전달되지않고 사라집니다.
메인 입장에선 뭐가 리턴되질 않으니 "아 재귀1 이라는 함수의 실행 결과는 None이구나" 하게 되는거죠.
celina324 1년 전
12 14줄에서 return을 쓰나 안 쓰나 어차피 재귀로 10번쨰 줄 리턴에 무조건 걸리게 되니까 상관없다고 생각했는데
안 쓴 12 14에 한 번이라도 걸리면 none이 들어가더라고요!
예제 1 하면 {-10: None, 2: None, 3: 2, 6: None, 7: None, 10: None} 이런 dicN이 돼요!
왜 이런 거죠?