• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

섹션 7 등산하기 DFS

21.11.16 21:59 작성 조회수 72

0

섹션 7 DFS 문제를풀다가 return 함수에대해 혼동이 생겨서
 
여쭤봅니다.
 
 
import sys #sys.stdin=open('input.txt', 'rt') n=int(input()) max=0 min=217000 maxArr=[] minArr=[] a=[list(map(int,input().split())) for _ in range(n)] cnt=0 for i in range(len(a)): for j in range(len(a[i])): if a[i][j] < min : min=a[i][j] minArr=[i,j] if a[i][j]>max: max=a[i][j] maxArr=[i,j] dx=[0,1,0,-1] dy=[1,0,-1,0] def DFS(x,y): global cnt if x==maxArr[0] and y==maxArr[1]: cnt+=1 else: for i in range(4): xx=x+dx[i] yy=y+dy[i] if 0<=xx<n and 0<=yy<n and a[x][y]<a[xx][yy]: DFS(xx,yy) # else: # return DFS(minArr[0], minArr[1]) print(cnt)

 

 

다음과 같이 풀어서 답을 맞췄었는데

 

주석처리된 else return을 넣으면 위의 코드에서 

 

어떤부분이 달라지는건가요?

 

return이 함수를 종료시키라는 뜻이므로

0<=xx<n and 0<=yy<n and a[x][y]<a[xx][yy] 에 해당하지 않는 값이 나왔을때

return 이 되고 다음함수로 넘어가는게 아닌가요??

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!