티스토리 뷰
n, m = map(int, input().split())
visit = [[0] * m for _ in range(n)] # 방문 위치를 저장하기 위한 맵
x, y, d = map(int, input().split())
visit[x][y] = 1
gameMap = []
for i in range(n):
gameMap.append(list(map(int, input().split())))
# 북 동 남 서 = 상 우 하 좌
dx = [0, 1, 0, -1]
dy = [-1, 0, 1, 0]
def turn_left():
global d
d -= 1
if d == -1:
d = 3
count = 1 # 현재 위치 포함
turn_time = 0
while True:
turn_left()
nx = x+dx[d]
ny = y+dy[d]
if visit[nx][ny] == 0 and gameMap[nx][ny] == 0:
visit[nx][ny] = 1
x = nx
y = ny
count += 1
turn_time = 0
continue
else: # 막혔을 때 1씩 더함
turn_time += 1
if turn_time == 4: # 사방이 막혔을 때
nx = x-dx[d]
ny = y-dy[d]
if gameMap[nx][ny] == 0:
x = nx
y = ny
else:
break
turn_time = 0
print(count)
'Python > 이코테' 카테고리의 다른 글
5-2. 탐색 알고리즘 DFS/BFS (0) | 2022.06.24 |
---|---|
5-1. 꼭 필요한 자료구조 기초 (0) | 2022.06.23 |
4-2. 왕실의 나이트 (0) | 2022.06.21 |
4-1. 아이디어를 코드로 바꾸는 구현 (0) | 2022.06.20 |
11-6. 무지의 먹방라이브 (2) | 2022.05.29 |
댓글