현수와 친구들은 과자를 사먹기 위해 사다리 타기를 합니다. 사다리 표현은 2차원 평면은 0으 로 채워지고, 사다리는 1로 표현합니다. 현수는 특정도착지점으로 도착하기 위해서는 몇 번째 열에서 출발해야 하는지 알고싶습니다. 특정 도착지점은 2로 표기됩니다. 여러분이 도와주세 요. 사다리의 지도가 10*10이면
특정목적지인 2에 도착하려면 7번 열 출발지에서 출발하면 됩니다.
▣ 입력설명
10*10의 사다리 지도가 주어집니다.
▣ 출력설명
출발지 열 번호를 출력하세요.
▣ 입력예제 1
1 0 1 0 0 1 0 1 0 1
1 0 1 1 1 1 0 1 0 1
1 0 1 0 0 1 0 1 0 1
1 0 1 0 0 1 0 1 1 1
1 0 1 0 0 1 0 1 0 1
1 0 1 1 1 1 0 1 0 1
1 0 1 0 0 1 0 1 1 1
1 1 1 0 0 1 0 1 0 1
1 0 1 0 0 1 1 1 0 1
1 0 1 0 0 2 0 1 0 1
▣ 출력예제 1
7
#import sys
#sys.stdin = open('in.txt', 'rt')
def DFS(x, y):
# print(f' current: {x},{y}')
if x == 0:
print(y)
elif y-1 >= 0 and a[x][y-1] == 1 and ch[x][y-1] == 0:
ch[x][y-1] = 1
DFS(x, y-1)
elif y+1 < 10 and a[x][y+1] == 1 and ch[x][y+1] == 0:
ch[x][y+1] = 1
DFS(x, y+1)
else:
ch[x-1][y] = 1
DFS(x-1, y)
if __name__ == '__main__':
a = [list(map(int, input().split())) for _ in range(10)]
ch = [[0]*10 for _ in range(10)]
for y in range(10):
if a[9][y] == 2:
DFS(9, y)
'Algorithm > Python' 카테고리의 다른 글
073 - 동적계획법이란? 네트워크 선 자르기(Bottom-Up)/(Top-Down : 재귀, 메모이제이션) (0) | 2023.10.14 |
---|---|
072 - 피자 배달 거리(삼성 SW역량평가 기출문제 : DFS활용) (1) | 2023.10.14 |
070 - 토마토(BFS 활용) (0) | 2023.10.06 |
069 - 안전영역(BFS) (3) | 2023.09.09 |
068 - 섬나라 아일랜드(BFS 활용) (0) | 2023.09.09 |