Python/코드업
1099 : [기초-2차원배열] 성실한 개미
Mr_Chu
2020. 9. 4. 00:09
개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직였다.
(오른쪽에 길이 나타나면 다시 오른쪽으로 움직인다.)
미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고,
먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자.
단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우에는
더이상 이동하지 않고 그 곳에 머무른다고 가정한다.
성실한 개미가 이동한 경로를 9로 표시해 출력한다.
board = []
x = 1
y = 1
# 2차배열 input
for i in range(10):
temp = list(map(int,input().split()))
board.append(temp)
while True:
if board[x][y] == 2: #먹이를 발견했을때
board[x][y] = 9
break
elif board[x+1][y] == 1 and board[x][y+1] == 1: #가로막혔을때
board[x][y] = 9
break
board[x][y] = 9
if board[x][y+1] == 1: # 오른쪽이 벽이면 아래로 1칸
x += 1
elif board[x+1][y] == 1: # 아래쪽이 벽이면 오른쪽으로 1칸
y += 1
else: y += 1 # 주변에 벽이 없으면 오른쪽으로 1칸
for a in board:
for b in a:
print(b,end=' ')
print()