๋ฌธ์
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 16173๋ฒ
ํ์ด ๊ณผ์
์์ ์ง์ ์์ ๋ชฉํ ์ง์ ๊น์ง์ ๋๋ฌ ๊ฐ๋ฅ์ฑ ์ ๋ฌด๋ฅผ ํ๋จํ๋ ๋ฌธ์ ์ ๋๋ค.
BFS
๋ฅผ ์ด์ฉํด์ ๊ฐ ์นธ์ ์ด๋๋ ฅ์ ๋ฐ๋ผ ํ์์ ์ํํ๋ฉด ๋ฉ๋๋ค.
์ฝ๋
import sys
from collections import deque
N = int(input())
board = [list(map(int, sys.stdin.readline().split())) for _ in range(N)]
dx = [0, 0, 1, -1]
dy = [1, -1, 0, 0]
def bfs(sx, sy):
q = deque()
visit = [[0] * N for _ in range(N)]
q.append([sx, sy])
while q:
x, y = q.popleft()
if board[x][y] == -1:
return True
offset = board[x][y]
for dir in range(4):
nx, ny = x + dx[dir] * offset, y + dy[dir] * offset
if 0 <= nx < N and 0 <= ny < N and not visit[nx][ny]:
visit[nx][ny] = 1
q.append([nx, ny])
return False
def solution():
is_reachable = bfs(0, 0)
return 'HaruHaru' if is_reachable else 'Hing'
print(solution())
๋ฐ์ํ
'๐ algorithm > boj' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 7562 - ๋์ดํธ์ ์ด๋ (0) | 2021.03.18 |
---|---|
BOJ 18352 - ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (0) | 2021.03.18 |
BOJ 2096 - ๋ด๋ ค๊ฐ๊ธฐ (0) | 2021.03.18 |
BOJ 14716 - ํ์๋ง (0) | 2021.03.18 |
BOJ 14923 - ๋ฏธ๋ก ํ์ถ (0) | 2021.03.18 |
๐ฌ ๋๊ธ