for y in range(i-1, i+2):
for x in range(j-1, j+2):
위 코드를 쓰지 않고, 변수안에 [-1,-1] ~~~ 쭉 넣어서는 잘 실행이 되는데요.
아래 코드처럼 위의 코드를 사용했을땐 cnt 값이 재대로 올라가지 않아 잘 구해오질 못합니다. 이유가 뭘까요?
row, col = map(int, input().split())
metrix = []
for i in range(row):
metrix.append(list(input()))
for j in range(col):
if metrix[i][j] == "*":
continue
elif metrix[i][j] == ".":
cnt = 0
for y in range(i-1, i+2):
for x in range(j-1, j+2):
try:
if metrix[i+y][j+x] == "*":
cnt += 1
except Exception as e:
pass
metrix[i][j] = str(cnt)
print(metrix)
for i in metrix:
print("".join(i))
가장 간단한 형태의 입력을 넣고, 코드의 동작을 확인하는 게 좋습니다.
3 3
...
...
..*
지뢰의 위치에 따라 올바르게 동작하는지 확인해보세요.
지뢰는 9개의 위치에 있을 수 있고, 각 위치에 따라 코드의 동작이 다를 겁니다.