티스토리 뷰

반응형

문제의 저작권은 SW Expert Academy에 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def dfs(y, x):
    global res
    data[y][x] = 1
    for d in range(4):
        xf = dx[d] + x
        yf = dy[d] + y
        if (0<= xf < N) and (0 <= yf < N):
            if data[yf][xf] == 0:
              dfs(yf, xf)
            if data[yf][xf] == 3:
                res = 1
                return
 
 
TC= int(input())
for tc in range(1, TC+1):
    N = int(input())
    data = [list(map(int, input())) for _ in range(N)]
 
    dx = [1-100]
    dy = [001-1]
 
    for i in range(N):
        for j in range(N):
            if data[i][j] == 2:
                x = j
                y = i
 
    res = 0
    dfs(y, x)
 
    print("#%d %d"%(tc, res))
cs

미로 문제같은 경우는 델타 탐색을 이용한다. 델타 탐색은 위의 dx, dy를 정의한 것이다.

 

하나 팁을 주자면 들어가자마자 반드시 visited부터 한다고 생각하자.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함