비트(bit)주세요

[코드업] - 6098, [기초-리스트] 성실한 개미 본문

문제풀이/파이썬 기초 100제

[코드업] - 6098, [기초-리스트] 성실한 개미

yglee730 2021. 7. 20. 22:22
728x90

https://codeup.kr/problem.php?id=6098 

 

[기초-리스트] 성실한 개미(py)

python언어기초100제v1.0 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요. - 모든 내용

codeup.kr

 

이번 문제는 길을 따라서 목표물까지 가는 문제입니다.

 

미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고,
먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보는 문제입니다.

 

개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지 움직일 수 있습니다.

개미는 오른쪽이나 아래쪽으로만 움직일 수 있습니다.

이동 경로는 9로 표시해줍니다.

 

입력:

10*10 크기의 미로 상자의 구조와 먹이의 위치가 입력된다.

 

출력:

성실한 개미가 이동한 경로를 9로 표시해 출력한다.

 

풀이:

2차원 배열을 다 0으로 채운다.

미로판을 입력받는다.

(2, 2) 부터 시작하니까 x=2, y=2로 정해준다.

 

반복문을 무한루프로 실행한다.

(x, y) 값이 0이면 갈 수 있다는 뜻이니까 9로 표시해주고,

(x, y) 값이 2면 먹이를 찾았다는 뜻이니까 반복문을 탈출해준다.

 

(x, y+1)가 1이고 (x+1, y)가 1이면 아무런 곳도 가지 못한다는 뜻이니까 제어문을 탈출한다.

 

(x, y+1)이 1이 아니면 (=장애물이 없어서 나아갈 수 있는 상태라면), 나아간다.

(x+1, y)이 1이 아니면 (=장애물이 없어서 나아갈 수 있는 상태라면), 나아간다.

    -> 나아갈 수 있는 상태가 0 또는 2 라서 1이 아니면이라는 조건을 세웠다.

 

반복문을 탈출하여 미로판의 상태를 출력해준다.