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

조현수님의 프로필 이미지
조현수

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

16. 사다리 타기(DFS)

return y는 안되는 이유가 궁금합니다

작성

·

188

0

안녕하세요 강사님. 질문이 있어서 남기겠습니다.

혹시 여기서 print(y)로는 7이 반환되는데 return y를 하면 왜 None이 반환되나요?

답변 3

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

제 컴퓨터에서는 답이 잘 나옵니다.

0

조현수님의 프로필 이미지
조현수
질문자

board = [list(map(int, input().split())) for _ in range(10)]  #10x10 2차원 리스트

check = [[0] * 10 for _ in range(10)]  #방문 체크 리스트

 

dy = [-1,1]  #좌우만 확인하면돼

for i in range(10):

    if board[9][i] == 2:  #도착지점이라면

        x, y = 9, i

        break

 

res = 0

def DFS(x,y):   #행, 열

    check[x][y] = 1 #방문처리

    if x == 0:   #시작지점 도달. 종료조건

        print(y)

#return y

    else:     #y-1, y+1에 대한 조건부터 먼저 나왔어야해. 인덱스 오류를 막기 위해서

        if y-1>=0 and board[x][y-1] == 1 and check[x][y-1] == 0:  

            #인덱스 오류가 아니면서 첫 방문이면서 좌에 사다리 있으면 그쪽으로.

            DFS(x, y-1)

        elif y+1 < 10 and board[x][y+1] == 1 and check[x][y+1] == 0:

            DFS(x, y+1)

        else:

            DFS(x-1,y)

DFS(x,y)

 

여기서 왜 return y는 안되는 것인지 궁금합니다

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

전체 코드를 복사 붙여넣기 할 수 있도록 텍스트로 주시면 제가 실행해 보겠습니다.

조현수님의 프로필 이미지
조현수

작성한 질문수

질문하기