Algorithm

[DFS] 백준-15173 점프왕 쩰리 (Small) 실버4 (Python)

차노도리 2023. 4. 14. 16:26

백준-15173 : 점프왕 쩰리 (Small)

https://www.acmicpc.net/problem/16173

 

16173번: 점프왕 쩰리 (Small)

쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로,  (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다.

www.acmicpc.net

풀이

  • 0,0에서 시작해서 해당 이동할수 있는  값 만큼 이동을하여 우측과 , 아래쪽을 확인하면서 DFS를 실행항

주의사항

  • 좌표의 값이 0인 값도 있기 때문에 해당 부분은 제외해줌

코드 (python)

import sys

read = sys.stdin.readline

n = int(read())
graph = [list(map(int, read().split())) for _ in range(n)]

dx = [1, 0]
dy = [0, 1]

result = "Hing"
stack = []

stack.append([0,0])

while stack:
    x,y =stack.pop()
    for i in range(2):
        nx = x+ dx[i]*graph[x][y]
        ny = y + dy[i]*graph[x][y]
        if (nx < 0 or nx >= n or ny < 0 or ny >= n) :
            continue
        if(graph[nx][ny]==0):continue

        if(graph[nx][ny]==-1):
            result="HaruHaru"
            break
        else:
            stack.append([nx,ny])
        

print(result)