인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Al Al님의 프로필 이미지
Al Al

작성한 질문수

[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편

DFS와 BFS (백준 1260)

재귀함수 질문

해결된 질문

작성

·

32

·

수정됨

1

재귀함수에서 보통 베이스 케이스에 리턴이 있는 경우를 많이 봤는데 베이스 케이스 부분에 return 안쓰는거랑 return 쓰고 그 뒤에 비워놓는거랑 같은 건가요??
예를 들어 이 두개가 같은건가요? (함수 안 부분 띄어쓰기해도 질문등록하면 다 왼쪽으로 정렬되서 보이네요ㅠ)

함수1: def function()


for _ in range(N):

...

 

함수 2: def function()

return
for _ in range(N):

...

답변 1

1

안녕하세요 🙂

우선 두 함수를 더 정확하게 예제로 작성해주시면 질문을 이해하기 더 쉬울 것 같아요. 여기서 베이스 케이스가 정확히 어떤 의미인지 확실하지 않아서 답변 드리기 고민되는데, 현재 이해한 대로 답변 드리고 부족한 부분 있으면 추가 질문 부탁드려요!

두 코드의 동작은 동일합니다. Python에서는 명시적으로 return을 작성하지 않아도 함수가 끝나면 암묵적으로 None을 반환하고 종료됩니다. 따라서 두 코드 모두 실행 결과는 동일하며, 동작에 차이는 없습니다. 그러나 코드 작성 의도와 가독성 면에서 약간의 차이가 있습니다.

첫 번째 코드에서는 return을 명시하지 않아 함수가 자연스럽게 종료되도록 작성한 것으로, 특별히 함수 종료를 강조하지 않습니다. 이 경우, 단순히 함수의 끝에서 아무 작업도 하지 않고 넘어가는 상황이라면 적합합니다.

두 번째 코드에서는 return을 명시적으로 작성하여 함수가 해당 위치에서 종료된다는 것을 분명히 나타냅니다. 이는 베이스 케이스를 명확히 구분하고자 하거나, 함수 종료를 코드 상에서 의도적으로 강조하고 싶을 때 사용합니다. 특히 협업 상황에서 코드의 의도를 명확히 전달하기 위해 유용할 수 있습니다.

결론적으로 두 코드의 실행은 같지만, 첫 번째 코드는 단순하고 암시적인 종료를 의도한 경우에 적합하고, 두 번째 코드는 의도를 명확히 표현하고 싶을 때 더 적합합니다. 상황에 따라 적절한 방식을 선택하면 됩니다.

Al Al님의 프로필 이미지
Al Al

작성한 질문수

질문하기