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 문을 통해 조건문을 통해 걸러주었습니다. 

지뢰찾기 하기만하다가 실제로 알고리즘을 만들어보니 더더 재밌네요.  굿밤 코로나 조심합시다.