๐ค๋ฌธ์ ํด๊ฒฐ
1. D4 | DFS
2. ์์์ ์ ์ฐพ๋๋ค.
3. ์คํ์ ํ์ฉํ๊ณ ์ํ์ข์ฐ 4๋ฐฉํฅ ํ์(์ธ๋ฑ์ค ๋ฒ์ ์ด๋ด)์ ํ๋ค.
(1) ๊ธธ('0')์ ๋ง๋ ๊ฒฝ์ฐ ์คํ์ ์ถ๊ฐํ๊ณ , ๋์ค์ ๋ค์ ํ์ํ๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๊ทธ ์ง์ ์ ๊ฐ์ ๋ฐ๊ฟ์ค๋ค.
(2) ๋('3')์ ๋ง๋ ๊ฒฝ์ฐ ๋ฏธ๋ก๊ฐ ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ ์ด๋ฏ๋ก ๋ต์ 1๋ก ํ๊ณ ํ์์ ์ข ๋ฃํ๋ค.
๐จ DFS ๊ธฐ๋ณธ๋ฌธ์ ์ด๋ค.
๐ป์์ค ์ฝ๋
dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]
for _ in range(10):
answer = 0
n = int(input())
maps = [list(input()) for _ in range(16)]
# ์ถ๋ฐ์ ์ฐพ๊ธฐ
x, y = 0, 0
for i in range(16):
for j in range(16):
if maps[i][j] == '2':
x, y = i, j
# ๋ฏธ๋กํ์ DFS
stack = [(x, y)]
while stack:
cx, cy = stack.pop()
for k in range(4):
nx = cx + dx[k]
ny = cy + dy[k]
if 0 <= nx < 16 and 0 <= ny < 16:
# ๊ธธ์ ๋ง๋ ๊ฒฝ์ฐ
if maps[nx][ny] == '0':
stack.append((nx, ny))
maps[nx][ny] = '9'
# ๋์ ์ ๋ง๋ ๊ฒฝ์ฐ
elif maps[nx][ny] == '3':
answer = 1
stack.clear()
break
print('#{} {}'.format(n, answer))
์ถ์ฒ: SW Expert Academy
๐๋ฌธ์ ํ์ธํ๊ธฐ๐ป๐ป
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ ๋ฏธ๋ก๊ฐ ์๋ค. 16*16 ํ๋ ฌ์ ํํ๋ก ๋ง๋ค์ด์ง ๋ฏธ๋ก์์ ํฐ์ ๋ฐํ์ ๊ธธ, ๋
ธ๋์ ๋ฐํ์ ๋ฒฝ์ ๋ํ๋ธ๋ค.
๊ฐ์ฅ ์ข์๋จ์ ์๋ ์นธ์ (0, 0)์ ๊ธฐ์ค์ผ๋ก ํ์ฌ, ๊ฐ๋ก๋ฐฉํฅ์ x ๋ฐฉํฅ, ์ธ๋ก๋ฐฉํฅ์ y ๋ฐฉํฅ์ด๋ผ๊ณ ํ ๋, ๋ฏธ๋ก์ ์์์ ์ (1, 1)์ด๊ณ ๋์ฐฉ์ ์ (13, 13)์ด๋ค.
์ฃผ์ด์ง ๋ฏธ๋ก์ ์ถ๋ฐ์ ์ผ๋ก๋ถํฐ ๋์ฐฉ์ง์ ๊น์ง ๊ฐ ์ ์๋ ๊ธธ์ด ์๋์ง ํ๋จํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
์๋์ ์์์์๋ ๋๋ฌ ๊ฐ๋ฅํ๋ค.
์๋์ ์์์์๋ ์ถ๋ฐ์ ์ด (1, 1)์ด๊ณ , ๋์ฐฉ์ ์ด (11, 11)์ด๋ฉฐ ๋๋ฌ์ด ๋ถ๊ฐ๋ฅํ๋ค.
[์
๋ ฅ]
๊ฐ ํ
์คํธ ์ผ์ด์ค์ ์ฒซ ๋ฒ์งธ ์ค์๋ ํ
์คํธ ์ผ์ด์ค์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋ฉฐ, ๋ฐ๋ก ๋ค์ ์ค์ ํ
์คํธ ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค.
์ด 10๊ฐ์ ํ
์คํธ์ผ์ด์ค๊ฐ ์ฃผ์ด์ง๋ค.
ํ
์คํธ ์ผ์ด์ค์์ 1์ ๋ฒฝ์ ๋ํ๋ด๋ฉฐ 0์ ๊ธธ, 2๋ ์ถ๋ฐ์ , 3์ ๋์ฐฉ์ ์ ๋ํ๋ธ๋ค.
[์ถ๋ ฅ]
#๋ถํธ์ ํจ๊ป ํ
์คํธ ์ผ์ด์ค์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๊ณ , ๊ณต๋ฐฑ ๋ฌธ์ ํ ๋๋ฌ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ 1 ๋๋ 0์ผ๋ก ํ์ํ๋ค (1 - ๊ฐ๋ฅํจ, 0 - ๊ฐ๋ฅํ์ง ์์).
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] SWEA - 1251. [S/W ๋ฌธ์ ํด๊ฒฐ ์์ฉ] 4์ผ์ฐจ - ํ๋๋ก (0) | 2020.08.12 |
---|---|
[python] SWEA - 1218. [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 4์ผ์ฐจ - ๊ดํธ ์ง์ง๊ธฐ (0) | 2020.08.11 |
[python] SWEA - 1249. [S/W ๋ฌธ์ ํด๊ฒฐ ์์ฉ] 4์ผ์ฐจ - ๋ณด๊ธ๋ก (2) | 2020.08.09 |
[python] SWEA - 2819. ๊ฒฉ์ํ์ ์ซ์ ์ด์ด ๋ถ์ด๊ธฐ (0) | 2020.08.08 |
[python] SWEA - 1868. ํํํํ ์ง๋ขฐ์ฐพ๊ธฐ (2) | 2020.08.07 |