ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
2178๋ฒ: ๋ฏธ๋ก ํ์
์ฒซ์งธ ์ค์ ๋ ์ ์ N, M(2 โค N, M โค 100)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์๋ M๊ฐ์ ์ ์๋ก ๋ฏธ๋ก๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ๊ฐ์ ์๋ค์ ๋ถ์ด์ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
www.acmicpc.net
๋ฌธ์ ํ์ด

์์ ์ง์ (0, 0)์์ ๋์ฐฉ ์์น์ ๊ฐ๋๊น์ง ๋ช์นธ์ ์ด๋ํด์ผ ํ๋์ง ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์์ ์ง์ ๋ถํฐ ์, ํ, ์ข, ์ฐ๋ก ํ์ํ๋ฉด์ ์ธ์ ํ ์นธ ์ค์ ๋ฐฉ๋ฌธ ๊ฐ๋ฅํ ์นธ์ด ์๋์ง ํ์ธ ํ์, ๊ฐ์ ์ค์ฒฉ์ํค๋ฉฐ ๋์ฐฉ ์์น์ ์ด๋ฅด๋ ์ ๋ ๋ช์นธ์ ์ด๋ํ๋์ง ์ถ๋ ฅํ๋ฉด ๋๋ค.
์์ผ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์์ ์ ๋ ฅ1, 2๋ฅผ ํ์ํ๊ฒ ๋๋ฉด ๋์ฐฉ ์ง์ ์ ์ด๋ฅด๊ธฐ๊น์ง ๊ฐ์ ์ค์ฒฉํ๋ฉด ๋ต์ ๊ตฌํ ์ ์๋ ๊ฒ์ ์ ์ ์๋ค. ์ฒ์์๋ ๋ฐฑํธ๋ํน์ด ํ์ํ์ง ์์๊น ์๊ฐํ๋๋ฐ ๊ทธ๋ด ํ์ ์์ด ๊ฐ์ ๋์ ํ๋ฉฐ ํ์์ ์งํํ๋ฉด ๋๋ค.
์ฝ๋
from sys import stdin
from collections import deque
def visitable(x, y):
return 0 <= x < n and 0 <= y < m and graph[x][y] == 1
def bfs(start):
q = deque([start])
while q:
cur_x, cur_y = q.popleft()
for x, y in dirs:
next_x, next_y = x + cur_x, y + cur_y
if visitable(next_x, next_y):
q.append([next_x, next_y])
graph[next_x][next_y] += graph[cur_x][cur_y]
return graph[n - 1][m - 1]
if __name__ == "__main__":
n, m = map(int, stdin.readline().split())
graph = [list(map(int, stdin.readline().rstrip())) for _ in range(n)]
dirs = ((0, 1), (0, -1), (1, 0), (-1, 0))
print(bfs([0, 0]))
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 7526 ๋์ดํธ์ ์ด๋ (0) | 2020.07.22 |
---|---|
๋ฐฑ์ค: 7576 ํ ๋งํ (0) | 2020.07.22 |
๋ฐฑ์ค: 4963 ์ฌ์ ๊ฐ์ (0) | 2020.07.21 |
๋ฐฑ์ค: 2667 ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (0) | 2020.07.21 |
๋ฐฑ์ค: 13023 ABCDE (0) | 2020.07.20 |