-
4396 지뢰찾기코테 대비 python/백준 2023. 3. 13. 16:49
https://www.acmicpc.net/problem/4396
4396번: 지뢰 찾기
지뢰찾기는 n × n 격자 위에서 이루어진다. m개의 지뢰가 각각 서로 다른 격자 위에 숨겨져 있다. 플레이어는 격자판의 어느 지점을 건드리기를 계속한다. 지뢰가 있는 지점을 건드리면 플레이어
www.acmicpc.net
#인접한 8개의 칸에 지뢰가 몇개 있었는지 알려주는 0~8사이의 숫자가 나타남 #n이 10이하이므로 브르투포스 가능할 것으로 보임 #따라서 주어진 조건을 만족하는 깡구현 #맨처음 n개는 지뢰위치 그다음 n개는 연것들의 위치 n = int(input()) mine = [input().rstrip() for _ in range(n)] open = [input().rstrip() for _ in range(n)] result = [[0]*n for _ in range(n)] #print(mine) #상하좌우 대각선 dx = [-1,1,0,0,-1,-1,1,1] dy = [0,0,-1,1,-1,1,1,-1] #만약 지뢰라면?? 지뢰의 위치를 미리 받자?? loc = [] for i in range(n): for j in range(n): if mine[i][j] =='*': loc.append((i,j)) def count_mine(x,y): cnt=0 for i in range(8): nx = x+dx[i] ny = y+dy[i] #범위안에 있다면, 지뢰라면? if 0<=nx<n and 0<=ny<n : if mine[nx][ny]=='*': cnt+=1 result[x][y]=cnt flag=0 for i in range(n): for j in range(n): #만약 열었다면 if open[i][j]=='x': #열었는데 지뢰아니라면 if mine[i][j] =='.': #print(1) count_mine(i,j) #지뢰면 flag =1 elif mine[i][j] =='*': flag=1 #안열었다면 elif open[i][j]=='.': result[i][j]='.' #마지막에 다 꼬이나보다 그러면 flag주자 if flag==1: for k in loc: a,b=k result[a][b]='*' for h in result: for l in h: print(l,end='') print()
'코테 대비 python > 백준' 카테고리의 다른 글
11659 구간 합 구하기 4 (0) 2023.03.22 2003 수들의 합 2 (0) 2023.03.20 20546 기적의 매매법 (0) 2023.03.13 1003 피보나치 함수 (1) 2023.03.09 13459 구슬탈출 (0) 2023.03.09