Kim Seon Deok
[코드업] [기초-리스트] 성실한 개미 본문
https://codeup.kr/problem.php?id=6098
<문제 요약>
1.10*10크기의 미로상자
2.개미는 (2,2)위치에서 시작
3.오른쪽으로 움직이다가 벽(1)을 만나면 아래로 움직임
4.개미가 지나온 길은 9로 변경
5.먹이(2)를 찾은 경우, 더 이상 움직일 수 없는 경우, 오른쪽 맨 아래에 도착한 경우 그 지점에서 머무름
ant = [list(map(int, input().split())) for _ in range(10)] # 10 * 10 크기 생성
i = 1 # x 좌표
j = 1 # y 좌표시작점
ant[1][1] = 9
while True:
if (ant[i][j+1] == 0 ) : # 오른쪽이 0
j += 1
ant[i][j] = 9
elif (ant[i][j+1] == 1 ): # 오른쪽이 1
if (ant[i+1][j] == 0 ) : # 아래쪽이 0
i += 1
ant[i][j] = 9
elif (ant[i+1][j] == 1 ): # 아래쪽이 1
break
elif (ant[i+1][j] == 2 ): # 아래쪽에 2
i += 1
ant[i][j] = 9
break
elif (ant[i][j+1] == 2 ): # 오른쪽이 2
j += 1
ant[i][j] = 9
break
for i in range(10):
for j in range(10):
print(ant[i][j], end = " ")
print()
<접근>
1. 오른쪽이 0일 경우 >> 오른쪽으로 이동 & 현재 지점 9 로 변경
2. 오른쪽이 1인 경우
2-1. 오른쪽이 1 & 아래쪽이 0 >> 아래쪽으로 이동 & 현재 지점 9로 변경
2-2. 오른쪽이 1 & 아래쪽이 1 >> 더 이상 움직일 수 없으므로 현재 지점 9로 변경
2-3. 오른쪽이 1 & 아래쪽이 2 >> 아래쪽으로 이동 & 현재 지점 9로 변경
3. 오른쪽이 2 인 경우 >> 오른쪽으로 이동 & 현재 지점 9로 변경
'python > Algorithm' 카테고리의 다른 글
[백준]1158 요세푸스 문제 (0) | 2022.01.08 |
---|---|
[백준] 1343번 폴리오미노 (0) | 2022.01.06 |
[백준]11170 0의 개수 (0) | 2022.01.06 |
[백준]10972 다음순열 (0) | 2022.01.05 |
ATM (0) | 2022.01.03 |