ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
ํฌ๊ธฐ๊ฐ RxC์ธ ๋ชฉ์ฅ์ด ์๊ณ , ์๊ณผ ๋๋๊ฐ ๋ชฉ์ฅ ์์ ์๋ค. ์ธํ๋ฆฌ๋ฅผ ์ค์นํ์ฌ ๋๋๊ฐ ์์ ์ ๊ทผํ ์ ์์ผ๋ฉด 1์ ์ถ๋ ฅํ๊ณ , ์๋ ๊ฒฝ์ฐ 0์ ์ถ๋ ฅํ๋ค. ๋๋๊ฐ ์์ ์ ๊ทผํ ์ ์๋ ๊ฒฝ์ฐ๋ ๋๋์ ์์ด ์ธ์ ํด์์ง ์์ ๊ฒฝ์ฐ์ด๋ค. ๋ฌธ์ ์์ ์ต์ ์ธํ๋ฆฌ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด ์๋, ๋๋๊ฐ ์์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ๋ง์ผ๋ฉด ๋๋ฏ๋ก ์์ ๊ธฐ์ค์ผ๋ก `์, ํ, ์ข, ์ฐ`๋ก ์ธํ๋ฆฌ๋ฅผ ์ค์นํ๋ฉด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ฝ๋
from sys import stdin
def visitable(x, y):
return 0 <= x < r and 0 <= y < c
def solve():
dirs = ((0, -1), (0, 1), (-1, 0), (1, 0))
for x in range(r):
for y in range(c):
# ์์ธ ๊ฒฝ์ฐ
if graph[x][y] == 'S':
# ์์ 4๋ฐฉํฅ์ผ๋ก ํ์ํ์ฌ, ๋๋๊ฐ ์๋์ง ํ์ธ
for dx, dy in dirs:
next_x, next_y = x + dx, y + dy
if visitable(next_x, next_y):
if graph[next_x][next_y] == 'W':
return 0
elif graph[next_x][next_y] == '.':
graph[next_x][next_y] = 'D'
else:
continue
return 1
if __name__ == '__main__':
r, c = map(int, stdin.readline().split())
graph = [list(stdin.readline().rstrip()) for _ in range(r)]
if solve():
print(1)
for row in graph:
print(''.join(row))
else:
print(0)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1655 ๊ฐ์ด๋ฐ๋ฅผ ๋งํด์ (0) | 2020.10.04 |
---|---|
๋ฐฑ์ค: 2606 ๋ฐ์ด๋ฌ์ค (0) | 2020.10.04 |
๋ฐฑ์ค: 3015 ์ค์์์ค ์ฌ๊ฒฐํฉ (0) | 2020.10.03 |
๋ฐฑ์ค: 9935 ๋ฌธ์์ด ํญ๋ฐ (0) | 2020.10.03 |
๋ฐฑ์ค: 2573 ๋น์ฐ (0) | 2020.10.02 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ