:link:문제 링크

[16173 점프왕 쩰리(Small)]

:question:문제 설명

$N \times N$ 격자판 왼쪽 맨 위에서 맨 오른쪽 아래로 이동 할 수 있는지 판단하는 문제. 단, 이동시에 격자판 위의 숫자만큼 아래로만 이동하거나 오른쪽으로만 이동가능.

:pencil2:코드

import sys
input = sys.stdin.readline
from collections import deque


N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
q = deque()
visited = [[False] * N for _ in range(N)]
dr = [1, 0]
dc = [0, 1]
q.append((0, 0))
visited[0][0] = True
while q:
    r, c = q.popleft()
    if r == N - 1 and c == N - 1:
        print("HaruHaru")
        exit()
    for k in range(2):
        nr = r + dr[k]*arr[r][c]
        nc = c + dc[k]*arr[r][c]
        if nr < 0 or nr >= N or nc < 0 or nc >= N:
            continue
        if visited[nr][nc]:
            continue
        q.append((nr, nc))
        visited[nr][nc] = True
print("Hing")

:memo:풀이

전형적인 BFS문제다. 오랜만에 풀어봤는데 괜찮았다 ㅎㅎ

최근에 갑자기 코딩이 귀찮고 뭔가 매일 해야하는 숙제같아서 500 며칠동안 이어왔던 스트릭을 파괴해버렸다..오랜만에 하니깐 또 재밌넹..오늘부터 다시 꾸준히 해보자!

댓글남기기