반응형
코드
n,m = map(int,input().split())
r,c,d = map(int,input().split())
graph = []
back_x = [1,0,-1,0]
back_y = [0,-1,0,1] # 북,동,남,서 순서대로 뒤쪽 방향
front_x = [-1,0,1,0]
front_y = [0,1,0,-1]
dir = [0,1,2,3]
def check(a,b):
for i in range(4):
if graph[a+back_x[i]][b+back_y[i]] == 0:
return True
return False
for i in range(n):
n_list = list(map(int,input().split()))
graph.append(n_list)
cnt = 0
while True:
if graph[r][c] == 0:
graph[r][c] = 2
cnt += 1
if check(r,c): # 주변 4칸 중 청소되지 않은 빈 칸이 있는 경우
d = dir[d-1]
if graph[r+front_x[d]][c+front_y[d]] == 0:
r += front_x[d]
c += front_y[d]
else: # 주변 4칸 중 청소되지 않은 빈 칸이 있는 경우
if graph[r+back_x[d]][c+back_y[d]] != 1:
r += back_x[d]
c += back_y[d]
else: break
print(cnt)
반응형
'알고리즘 > 구현' 카테고리의 다른 글
[백준][Python] 1913번 달팽이 (0) | 2023.02.24 |
---|---|
[프로그래머스][Python] n^2배열 자르기 (0) | 2023.02.23 |
[백준][Python] 14891번 톱니바퀴 (0) | 2022.11.30 |
[백준][Python] 1475번 방 번호 (0) | 2022.11.18 |
[백준][Python] 21918번 전구 (0) | 2022.06.21 |
댓글