← Back to List

1996번: 지뢰 찾기 ↗

Solutions

Python 3
654 B | 654 chars
n = int(input())
L = []
for i in range(n):
    L.append(input())

S = [[0]*(n+2) for i in range(n+2)]
D = [[0]*(n+2) for i in range(n+2)]
for i in range(n):
    for j in range(n):
        if L[i][j] !=".":
            S[i+1][j+1] = int(L[i][j])

for i in range(1,n+1):
    for j in range(1,n+1):
        if S[i][j] == 0:
            for x in range(-1,2):
                for y in range(-1,2):
                    D[i][j] += S[i+x][j+y]

for i in range(1,n+1):
    for j in range(1,n+1):
        if S[i][j] > 0:
            print(end="*")
        elif D[i][j] >= 10:
            print(end = "M")
        else:
            print(D[i][j],end="")
    print()