오늘은 코드업에 있는 성실한 개미 문제를 풀어보았다. 10*10 크기로 맵을 입력 받는다. 먼저 겉에는 1로 되어 있고 속에 0과 1과 2로 이루어져 있는데 0은 개미가 돌아다닐 수 있는 공간이고 1은 벽이라서 움직일 뚫고 갈 수가 없고 2는 먹이다. 개미는 무조건 기본적으로 오른쪽으로 가는데 만약에 1을 만나면 아래로 내려간다. 그리고 개미가 지나간 곳은 9로 채워지고 개미가 멈추는 곳은 맵의 가장 오른쪽 밑이거나 먹이를 만나거나 더이상 움직일 수 없는 곳에서 멈춘다.
먼저 10*10의 맵을 만들고 개미가 움직이기 시작할 곳인 startx와 starty를 선언해서 둘다 1로 정의 했다. 그리고 맵을 입력받는다. 그 다음에 while문을 열어서 개미가 오른쪽 가장 밑에 갈 때까지 반복한다. 그리고 만약에 개미의 오른쪽이 장애물이고 아래에 먹이가 있으면 멈추도록 if문을 만들었고 만약에 그런게 아니고 개미 오른쪽에 장애물만 있다면 그냥 밑으로 가도록 했다. 그리고 오른쪽이 비어있으면 그냥 startx를 증가시키고 원래 있던 곳을 9로 만든다. 개미의 움직임이 끝나면 그 결과를 출력한다. 이 문제의 예는 밑에 있다.
입력
출력
댓글 없음:
댓글 쓰기