inflearn logo
강의

講義

知識共有

[Python/Python] 文科生も理解するDFSアルゴリズム! - 入門編

DFSとBFS(ペクジュン1260)

재귀함수 질문

解決済みの質問

144

Al Al

投稿した質問数 6

1

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

함수1: def function()


for _ in range(N):

...

 

함수 2: def function()

return
for _ in range(N):

...

python 코딩-테스트 알고리즘 dfs python3

回答 1

1

gaebaljob

안녕하세요 🙂

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

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

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

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

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

itertools, sys같은 STL을 사용할 수 없는 경우 질문드립니다.(백준 11724)

1

34

1

백준 13565 침투 질문

1

93

2

침투/섬개수 질문

1

138

2

백준 1260 (DFS 와 BFS) 프린트 위치 질문

1

122

1

촌수계산(백준 2644) 질문

1

187

2

다른 주제 강의

1

138

2

graph

1

197

1

재귀 함수 Depth

1

181

1

백준 DFS

1

217

1

[바닥장식][런타임에러] 질문 있습니다.

1

292

3

그래프 짤 때 adjacency matrix vs adjacency list

1

393

2

2644문제(촌수 구하기) 질문입니다.

1

252

2

DFS 문제 하나 여쭤봅니다!..

1

297

1

다음강의

1

245

1

알고리즘 수업 - 깊이 우선 탐색 2( 백준 24480) 번 질문

1

285

1

1260 문제 풀이에서는 함수 global로 변수 선언

2

212

1

PyPy3와 Python3

1

332

1

백준 2606

1

216

1

22479번 문제 런타임 에러 도와주세요 ㅠㅠ

1

439

1

11724 문제 질문

1

305

2

그래프 초기화

1

282

1

선생님! 바이러스 문제 코드 질문있어요오

1

276

2

질문있습니다!

1

332

1

2644 촌수계산 문제에 관한 질문

1

238

1