알고리즘 연습
[4396] 지뢰 찾기 - Python
밀깜
2022. 6. 13. 15:28
1. 문제
https://www.acmicpc.net/problem/4396
2. 풀이
def count_mine(x, y):
dx = [-1, -1, -1, 0, 0, 1, 1, 1]
dy = [-1, 0, 1, -1, 1, -1, 0, 1]
count = 0
for i in range(8):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < n:
if mine_map[nx][ny] == '*':
count += 1
return count
# 1. Read the information
n = int(input())
mine_map = [list(input()) for _ in range(n)]
game_map = [list(input()) for _ in range(n)]
result = [['.'] * n for _ in range(n)]
# 2. Draw the situation
for i in range(n):
for j in range(n):
if mine_map[i][j] == '.' and game_map[i][j] == 'x':
result[i][j] = count_mine(i, j)
if mine_map[i][j] == '*' and game_map[i][j] == 'x':
for k in range(n):
for l in range(n):
if mine_map[k][l] == '*':
result[k][l] = '*'
# 3. Print the result
for i in range(n):
for j in range(n):
print(result[i][j], end='')
print()
3. 배운점
4. 개선할 점
풀이 오류 지적, 다른 접근법 공유, 그 밖에 질문 등 모든 의견을 환영합니다.