์์ ์ง๋#
ํ๋ก๊ทธ๋๋จธ์ค
์ ๋ต๋ฅ : 58%
์์ญ:ํ์
๋์ ์์ ์ ๋ต๋ฅ :63.5%
์์น๋ฅ :1.7%
์ง๋ขฐ๋ 2์ฐจ์ ๋ฐฐ์ด board์ 1๋ก ํ์๋์ด ์๊ณ board์๋ ์ง๋ขฐ๊ฐ ๋งค์ค ๋ ์ง์ญ 1๊ณผ, ์ง๋ขฐ๊ฐ ์๋ ์ง์ญ 0๋ง ์กด์ฌํฉ๋๋ค.
์ง๋ขฐ๊ฐ ๋งค์ค๋ ์ง์ญ์ ์ง๋ board๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์ ํ ์ง์ญ์ ์นธ ์๋ฅผ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
board๋ n * n ๋ฐฐ์ด์
๋๋ค.
1 โค n โค 100
์ง๋ขฐ๋ 1๋ก ํ์๋์ด ์์ต๋๋ค.
board์๋ ์ง๋ขฐ๊ฐ ์๋ ์ง์ญ 1๊ณผ ์ง๋ขฐ๊ฐ ์๋ ์ง์ญ 0๋ง ์กด์ฌํฉ๋๋ค.
# input setting
problem_num = '์์ ์ง๋'
import os, sys
path = os.getcwd() + f'\\txt\\{problem_num}' + '.txt'
sys.stdin = open(path,'r')
board = sys.stdin.readlines()
board = [list(map(int,s.strip().split(' '))) for s in board]
import numpy as np
def solution(board):
mask = np.zeros_like(board)
i,j = mask.shape[0],mask.shape[1]
for n in range(i):
for m in range(j):
if board[n][m] == 1:
for a in range(n-1 if n-1 > 0 else 0, n+2 if n+2 < i else i):
for b in range(m-1 if m-1 > 0 else 0, m+2 if m+2 < j else j):
mask[a][b] = 1
answer = int(i*j-mask.sum())
return answer
solution(board)
13
๋ง์คํน
np.sum for ndarray
map์ iterable ์์๋ฅผ ํ์ด์ ๋ฃ์ผ๋ฉด [map~]์ด๋ ๊ฒ ๋ฃ์ผ๋ฉด ์๋๊ณ list(map~) ์ด๋ ๊ฒ ๋ฃ์ด์ค์ผํ๋ค.