Part6.16_완전탐색_깊이,넓이 우선탐색활용_사다리 타기(DFS)

Eugenius1st·2022년 2월 11일
0

Python_algorithm

목록 보기
60/83

선생님 코드

사다리 타기

모든 열을 확인하는 것은 비효율 적이므로,
도착지 열에서 역으로 탐색하여
출발지 열번호를 확인하면 된다.

왼쪽 오른쪽 위를 확인하여, 1인 곳을 ch 배열 값을 1로 바꿔준다.
...
이 방식으로 계속 타고 올라가면
열 번호가 0되었을 때 좌표를 확인하면 된다.

import sys
sys.stdin = open("input.txt", "rt")

def DFS(x,y) :
    ch[x][y] = 1
    if x == 0:
        print(y)
    else:
        if y-1 >= 0 and board[x][y-1] ==1 and ch[x][y-1] == 0:
            DFS(x, y-1)
        elif y+1<10 and board[x][y+1]==1 and ch[x][y+1]==0:
            DFS(x, y+1)
        else:
            DFS(x-1, y)


if __name__ == "__main__":
    board=[list(map(int,input().split())) for _ in range(10)]
    ch = [[0] * 10 for _ in range(10)]
    for y in range(10):
        if board[9][y] == 2:
            DFS(9,y)
profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글