백준 #16173 점프왕 쩰리(Small)
문제 링크
문제 설명
$N \times N$ 격자판 왼쪽 맨 위에서 맨 오른쪽 아래로 이동 할 수 있는지 판단하는 문제. 단, 이동시에 격자판 위의 숫자만큼 아래로만 이동하거나 오른쪽으로만 이동가능.
코드
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")
풀이
전형적인 BFS
문제다. 오랜만에 풀어봤는데 괜찮았다 ㅎㅎ
최근에 갑자기 코딩이 귀찮고 뭔가 매일 해야하는 숙제같아서 500 며칠동안 이어왔던 스트릭을 파괴해버렸다..오랜만에 하니깐 또 재밌넹..오늘부터 다시 꾸준히 해보자!
댓글남기기