코드업(CodeUp) 풀이/파이썬 기초 100제

코드업[CodeUp] (파이썬) 6098번 풀이

개발윗미 2021. 9. 6. 16:29

Python으로 구현한 6098번 성실한 개미 문제 풀이입니다.

 

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

 

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

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

codeup.kr


p = [[] * 10 for _ in range(10)]

for i in range(10) :
  p[i] = list(map(int, input().split()))

x = 1
y = 1
p[x][y] = 9

while(1) :
  if p[x][y] == 2 :
    p[x][y] = 9
    break
  if p[x][y+1] != 1 :
    p[x][y] = 9
    y += 1
  else :
    if p[x+1][y] != 1 :
      p[x][y] = 9
      x += 1
    else :
      p[x][y] = 9
      break


for i in range(10) :
  for j in range(10) :
    print(p[i][j], end = ' ')
  print()

 

우선 10 * 10 크기의 미로 상자의 구조와 먹이의 위치를 입력받고 문제에서 개미는 (2, 2)에서 출발하기 때문에

 

x와 y의 값을 1로 설정한다. (위 코드에서는 리스트를 0부터 계산하기 때문에 2에 1을 뺀 값으로 설정)

 

또한 출발지점은 방문하였기 때문에 해당 좌표를 9로 갱신하여 방문처리를 해준다.

 

반복문을 통해 만약 해당좌표 값이 2라면 그 위치의 값을 9로 갱신하고 먹이에 도달했기 때문에 반복문을 종료한다.

 

만약 해당좌표의 오른쪽 값이 1이 아니라면 개미가 갈 수 있는 곳이기 때문에 현재의 위치를 방문처리해주고 오른쪽으로

 

이동한다. 해당좌표의 오른쪽 값이 1이라면 다시 조건문을 통해 현재 위치에서의 아래 값을 확인하여 그 값이 1이 아니라면

 

개미가 갈 수 있는 곳이기 때문에 현재의 위치를 방문처리해주고 아래쪽으로 이동한다.

 

최종적으로 성실한 개미가 이동한 경로를 출력한다.