CODE FIGHT
codefight_24번 지뢰찾기
lolencec
2020. 8. 21. 23:48
def minesweeper(matrix):
true = True
false = False
row = len(matrix)
colum = len(matrix[0])
x = []
for i in range(0,row):
sumrow = []
for j in range(0,colum):
if matrix[i][j] == true:
sumrow.append(1)
else :
sumrow.append(0)
x.append(sumrow)
bom = []
for i in range(0,row):
sumrow = []
for j in range(0,colum):
if (i == 0 and j == 0) :
value = x[0][1] + x[1][0] + x[1][1]
sumrow.append(value)
elif (i == 0 and j == colum-1):
value = x[0][colum-2] + x[1][colum-2] + x[1][colum-1]
sumrow.append(value)
elif (i == row-1 and j == 0):
value = x[row-2][0] + x[row-2][1] + x[row-1][1]
sumrow.append(value)
elif (i == row-1 and j == colum-1):
value = x[row-2][colum-2] + x[row-2][colum-1] + x[row-1][colum-2]
sumrow.append(value)
elif i == 0:
value = x[i][j-1] + x[i][j+1] + x[i+1][j-1] + x[i+1][j] + x[i+1][j+1]
sumrow.append(value)
elif j == 0:
value = x[i-1][j] + x[i-1][j+1] + x[i][j+1] + x[i+1][j] + x[i+1][j+1]
sumrow.append(value)
elif i == row-1:
value = x[i-1][j-1] + x[i-1][j] + x[i-1][j+1] + x[i][j-1] + x[i][j+1]
sumrow.append(value)
elif j == colum-1:
value = x[i-1][j-1] + x[i-1][j] + x[i][j-1] + x[i+1][j-1] + x[i+1][j]
sumrow.append(value)
else:
value = x[i-1][j-1] + x[i-1][j] + x[i-1][j+1] + x[i][j-1] + x[i][j+1] + x[i+1][j-1] + x[i+1][j] + x[i+1][j+1]
sumrow.append(value)
bom.append(sumrow)
return bom
너~~~무 오랜만에 올리는데
생각대로 한번에 잘 풀려서 너무 기분이 좋네요. 23번을 잘풀어놔서 너무 도움이 된것같습니다.
풀이시간은 1시간 10분정도이며 ,
풀이방식은 우선 어떤점이 가장문제가 될지 생각해보았어요.
각 꼭지점이 1순위
각 변이 2순위
나머지가 3순위로 차례대로 if 문을 통해 조건문을 통해 걸러주었습니다.
지뢰찾기 하기만하다가 실제로 알고리즘을 만들어보니 더더 재밌네요. 굿밤 코로나 조심합시다.