코딩하는 해맑은 거북이
[Python] 지뢰 찾기 - 백준 본문
해당 글은 백준 1996번 문제 '지뢰 찾기'를 다룬다.
문제
https://www.acmicpc.net/problem/1996
1996번: 지뢰 찾기
첫째 줄에 N(1 ≤ N ≤ 1,000)이 주어진다. 다음 N개의 줄에는 지뢰 찾기 map에 대한 정보가 주어지는데 '.' 또는 숫자로 이루어진 문자열이 들어온다. '.'는 지뢰가 없는 것이고 숫자는 지뢰가 있는 경
www.acmicpc.net
설명
해당 문제는 지뢰가 없는 곳에서 둘러싼 (상하좌우 + 대각4가지) 총 8가지 구역 중에 지뢰가 있는 부분을 다 더해줘서 업데이트 시켜주면 된다. 만약 8구역의 총합이 10 이상이면 M으로 출력하고, 지뢰가 있는 부분은 *로 출력하면 되는 간단한 구현 문제이다.
코드
n = int(input())
arr = []
for i in range(n):
arr.append(list(input()))
dx = [-1, 1, 0, 0, -1, -1, 1, 1]
dy = [0, 0, 1, -1, -1, 1, -1, 1]
result = [[0 for _ in range(n)] for _ in range(n)]
for i in range(n):
for j in range(n):
if arr[i][j] == '.':
count = 0
for k in range(8):
nx = i + dx[k]
ny = j + dy[k]
if nx >= 0 and nx < n and ny >= 0 and ny < n and arr[nx][ny] != '.':
count += int(arr[nx][ny])
result[i][j] = str(count) if count < 10 else 'M'
else:
result[i][j] = '*'
for i in range(n):
print(''.join(result[i]))
'코딩테스트' 카테고리의 다른 글
[Python] 시리얼 번호 - 백준 (정렬) (0) | 2022.12.25 |
---|---|
[Python] 문서 검색 - 백준 (0) | 2022.12.24 |
[Python] GCD 합 - 백준 (0) | 2022.12.23 |
[Python] 분수 합 - 백준 (0) | 2022.12.23 |
[Python] 요세푸스 문제 - 백준 (0) | 2022.12.22 |
Comments