L0 : 안전지대 Python

jhyunn·2023년 1월 15일
0

Programmers

목록 보기
6/69

L0 : 안전지대 Python

https://school.programmers.co.kr/learn/courses/30/lessons/120866

def solution(board):
    
    for i in range(len(board)):
        for j in range(len(board)):
            if board[i][j] == 1:
                for k in range(-1, 2):
                    for l in range(-1, 2):
                        try:
                            if board[i+k][j+l] == 0 and i+k!=-1 and j+l!=-1:
                                board[i+k][j+l] = 2
                        except:
                            continue
                
    return sum(b.count(0) for b in board)
import numpy as np

def solution(board):
    board = np.array(board)
    rows, cols = np.where(board==1)
    for r, c in zip(rows, cols):
        for i in [-1, 0, 1]:
            for j in [-1, 0, 1]:
                if r+i==-1 or r+i==len(board) or c+j==-1 or c+j==len(board):
                    pass
                else:

                    board[r+i, c+j] = 1
    return board.flatten().tolist().count(0)

#numpy #where #flatten

profile
https://github.com/Sungjeonghyun

0개의 댓글