강의

멘토링

커뮤니티

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

이경훈님의 프로필 이미지
이경훈

작성한 질문수

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

16. 사다리 타기(DFS)

ch 를 굳이 만들어야 하는 이유를 잘 모르겠습니다.

작성

·

174

0

arr = [list(map(int,input().split())) for _ in range(10)]

for i in range(10):
    if arr[9][i] == 2:
        start = i
        break

def dfs(r,c):
    if r == 0:
        print(c)
        return
    if 0<= c-1 and arr[r][c-1] == 1:
        arr[r][c-1] = 2
        dfs(r,c-1)
    elif c+1 < 10 and arr[r][c+1] == 1:
        arr[r][c+1] = 2
        dfs(r,c+1)
    elif 0<= r-1 and arr[r-1][c] == 1:
        arr[r-1][c] = 2
        dfs(r-1,c)

dfs(9,start)

 안녕하세요 선생님 질문있어서 글 남깁니다!

 선생님의 코드처럼 ch를 만드는 경우 메모리를 더 잡아먹을 것 같은데, 방문한 board의 값을 1이 아닌 값으로 바꾸면 메모리적으로 더 효율적이지 않을까요?

 혹시 문제가 있을까요

답변 1

0

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

네. ch리스트 없이 board의 값을 가지고 해도 됩니다. 

이경훈님의 프로필 이미지
이경훈

작성한 질문수

질문하기