
๐ค๋ฌธ์ ํด๊ฒฐ
-
S1 | ์์ ํ์
N์ ๋ฒ์๊ฐ ๋งค์ฐ ์์ผ๋ฏ๋ก ์์ ํ์์ ํ๋ ๋ฌธ์ ์ด๋ค.
๋ฒฝ์ ์ธ์ธ ์ ์๋ ๋น ๊ณต๊ฐ์ ๋ฆฌ์คํธ๋ก ๊ตฌํ๊ณ ,
์ฝค๋น๋ค์ด์ (3)์ ํ๋ค. ( ๋ฒฝ์ 3๊ฐ ์ธ์์ผ ํ๋ฏ๋ก )
๋ฒฝ์ ์ธ์ฐ๋ฉด ๊ฐ์๋ฅผ ์์ํ๋ค.
์ ์๋๋ฆฌ์คํธ๋ ๋ง๋ค์ด์ ์ํ์ข์ฐ ๊ฐ์๋ฅผ ํ๋ค.
๊ฐ์๋ฅผ ํ๋ ๋์ค ๋๊น์ง ๊ฐ๊ฑฐ๋ ๋ฒฝ์ ๋ง๋๋ฉด ํด๋น ๋ฐฉํฅ์ ๊ฐ์๋ ๋ฉ์ถ๊ณ
ํ์์ ๋ง๋๋ฉด ๊ฐ์์ ์ฑ๊ณตํ๋ฏ๋ก
๊ทธ ๋ฒฝ์ ๋ค์ ์ฒ ๊ฑฐํ๊ณ ๋ค๋ฅธ ๋ฒฝ์ ์ธ์ด๋ค.
์ ์๋์ด ๋ชจ๋ ๋ฐฉํฅ์ ๋ํด์ ๊ฐ์์ ์คํจํ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
๐ป์์ค ์ฝ๋
from itertools import combinations as cb
def watch():
for teacher in teacher_list:
x, y = teacher
# ์
nx, ny = x, y
while nx > 0:
nx -= 1
if hallway[nx][ny] == 'S':
return False
if hallway[nx][ny] == 'O':
break
# ํ
nx, ny = x, y
while nx < N - 1:
nx += 1
if hallway[nx][ny] == 'S':
return False
if hallway[nx][ny] == 'O':
break
# ์ข
nx, ny = x, y
while ny > 0:
ny -= 1
if hallway[nx][ny] == 'S':
return False
if hallway[nx][ny] == 'O':
break
# ์ฐ
nx, ny = x, y
while ny < N - 1:
ny += 1
if hallway[nx][ny] == 'S':
return False
if hallway[nx][ny] == 'O':
break
return True
if __name__ == '__main__':
N = int(input())
hallway = [input().split() for _ in range(N)]
empty_list = []
teacher_list = []
for i in range(N):
for j in range(N):
if hallway[i][j] == 'X':
empty_list.append((i, j))
elif hallway[i][j] == 'T':
teacher_list.append((i, j))
# ๋ฒฝ 3๊ฐ ๋ฝ๊ธฐ
for walls in cb(empty_list, 3):
# ๋ฒฝ ์ธ์ฐ๊ธฐ
for wall in walls:
x, y = wall
hallway[x][y] = 'O'
# ๊ฐ์ํ๊ธฐ
if watch():
print('YES')
break
# ๋ฒฝ ํ๋ฌผ๊ธฐ
for wall in walls:
x, y = wall
hallway[x][y] = 'X'
else:
print('NO')
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋งํฌ: https://www.acmicpc.net/problem/18428
18428๋ฒ: ๊ฐ์ ํผํ๊ธฐ
NxN ํฌ๊ธฐ์ ๋ณต๋๊ฐ ์๋ค. ๋ณต๋๋ 1x1 ํฌ๊ธฐ์ ์นธ์ผ๋ก ๋๋์ด์ง๋ฉฐ, ํน์ ํ ์์น์๋ ์ ์๋, ํ์, ํน์ ์ฅ์ ๋ฌผ์ด ์์นํ ์ ์๋ค. ํ์ฌ ๋ช ๋ช ์ ํ์๋ค์ ์์ ์๊ฐ์ ๋ชฐ๋ ๋ณต๋๋ก ๋น ์ ธ๋์๋๋ฐ, ๋ณต
www.acmicpc.net
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 17140. ์ด์ฐจ์ ๋ฐฐ์ด๊ณผ ์ฐ์ฐ (2) | 2020.11.30 |
---|---|
[python] ๋ฐฑ์ค - 10819. ์ฐจ์ด๋ฅผ ์ต๋๋ก (0) | 2020.11.29 |
[python] ๋ฐฑ์ค - 1916. ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2020.11.27 |
[python] ๋ฐฑ์ค - 2573. ๋น์ฐ (0) | 2020.11.26 |
[python] ๋ฐฑ์ค - 2493. ํ (0) | 2020.11.25 |