23.7 심사문제:지뢰찾기 직접한게 결과가 나오질 않아서
정답이 뭔지 도통 모르겟네요
정답 가르쳐주세요..
col, row = map(int, input().split())
matrix = []
for i in range(row):
matrix.append(list(input()))
for n in range(row):
for m in range(col):
if matrix[n][m] == '*':
continue
matrix[n][m] = 0
for x in range(n-1, n+2):
for y in range(m-1, m+2):
if x < 0 or y < 0 or x >= row or y >= col:
continue
if matrix[x][y] == '*':
matrix[n][m]=matrix[n][m]+1
else:
matrix[n][m]=matrix[n][m]
for i in list(matrix):
for j in i:
print(j, end='')
print()
포럼 상단 오른쪽에 검색창에 23.7로 검색하면 이전 질문과 답변을 참조할 수 있습니다.
문의한 코드에 대해서 다음 입력을 넣고
3 3
...
...
..*
실행하면 결과는
000 000 00*입니다.
지뢰가 있는 곳의 숫자를 카운팅하지 못하는 것으로 보입니다.
포럼 상단 고정에 파이썬 시각화 사이트 공지가 있습니다. 또는 Thonny를 설치해서 PC에서 직접 해볼 수도 있습니다.
코드를 실행하고 입력을 각 라인별로 단계에 따라 입력하면 시각적으로 코드 실행을 확인할 수 있습니다.
이렇게 확인하면서 어떤 부분이 의도한 대로 동작하지 않는지 살펴보면 도움이 됩니다.
그래도 어렵다면 문제는 미뤄두고 다음 진도를 나간 다음에 언젠가 시간이 날 때 풀어보는 것을 추천합니다. 어렵다고 느꼈던 문제가 나중에 보면 쉽게 해결되기도 합니다. 이는 인간이 학습했기 때문이고, 이해도가 높아지기 때문입니다.