728x90
반응형
풀기 전 생각해보기😮
- 지뢰가 있을 경우 모든 지뢰의 위치 표시
- 이차원 배열의 방향 탐색
풀이🛫
N = int(input())
mine = [list(input()) for i in range(N)] # 지뢰의 위치
open = [list(input()) for i in range(N)] # 지뢰가 있는지 확인한 위치
zone = [[0 for i in range(N)] for j in range(N)] # 플레이어가 보는 위치
# U UR R DR D DL L UL
dcol = [1, 1, 0, -1, -1, -1, 0, 1]
drow = [0, 1, 1, 1, 0, -1, -1, -1]
for col in range(N):
for row in range(N):
# 지뢰가 있는 곳 주위의 값 표시
if mine[col][row] == "*":
for v in range(8):
ncol = col+dcol[v]
nrow = row+drow[v]
if 0<=ncol<N and 0<=nrow<N:
zone[ncol][nrow] += 1
for col in range(N):
for row in range(N):
# 지뢰가 있는 곳을 표시
if mine[col][row] == "*":
zone[col][row] = "*"
# 플레이어가 확인하지 못한 곳을 표시
if open[col][row] == ".":
zone[col][row] = "."
# 플레이어가 열어본 위치가 지뢰가 있는 곳일 경우
for row in range(N):
if open[col][row] == "x" and mine[col][row]=="*":
# 모든 지뢰의 위치 표시
for y in range(N):
for x in range(N):
if mine[y][x] == "*":
zone[y][x] = "*"
for i in zone:
for j in i:
print(j, end="")
print()
링크💎
후기 😎
- 차근차근
'Algorithm Study > Python' 카테고리의 다른 글
[백준 파이썬] #2605 줄세우기 (0) | 2022.08.27 |
---|---|
[백준 파이썬] #2309 일곱 난쟁이 (0) | 2022.08.20 |
[Algorithm Study] 파이썬 부분집합 구하기 예시 (0) | 2022.08.11 |
[백준 파이썬] #2804 크로스워드 만들기 (0) | 2022.07.23 |
[백준 파이썬] # 2447 별 찍기 - 10 (0) | 2022.03.10 |