성실한 개미
🔗 문제 링크
https://codeup.kr/problem.php?id=1099
❔ 문제 설명
영일이는 생명과학에 관심이 생겨 왕개미를 연구하고 있었다.
왕개미를 유심히 살펴보던 중 특별히 성실해 보이는 개미가 있었는데, 그 개미는 개미굴에서 나와 먹이까지 가장 빠른 길로 이동하는 것이었다.
개미는 오른쪽으로 움직이다가 벽을 만나면 아래쪽으로 움직여 가장 빠른 길로 움직였다. (오른쪽에 길이 나타나면 다시 오른쪽으로 움직인다.) 미로 상자에 넣은 개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지 오른쪽 또는 아래쪽으로만 움직였다.
미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고, 먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자.
⚠️ 제한사항
-
미로 상자의 테두리는 모두 벽으로 되어 있으며,
개미집은 반드시 (2, 2)에 존재하기 때문에 개미는 (2, 2)에서 출발한다. -
단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우 더이상 이동하지 않고 그 곳에 머무른다고 가정한다.
💡 풀이 (사용언어 : Python)
import sys
mat = [[] for i in range(10)]
for i in range(10):
inputlist = list(map(int, sys.stdin.readline().strip().split()))
mat[i] = inputlist
if mat[1][1] == 2:
mat[1][1] = 9
else:
mat[1][1] = 9
j = 1; k = 1
while True:
if (j == 9 and k == 9) or (mat[j+1][k] == 1 and mat[j][k+1] == 1):
break
if mat[j][k+1] == 2:
mat[j][k+1] = 9
break
elif mat[j][k+1] == 0:
mat[j][k+1] = 9
k += 1
elif mat[j+1][k] == 2:
mat[j+1][k] = 9
break
elif mat[j+1][k] == 0:
mat[j+1][k] = 9
j += 1
for i in range(10):
for j in range(10):
print(mat[i][j], end = " ")
print()
Author And Source
이 문제에 관하여(성실한 개미), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@shiningcastle/성실한-개미저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)