์•ˆ์ „์ง€๋Œ€

์•ˆ์ „์ง€๋Œ€#

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
์ •๋‹ต๋ฅ : 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~) ์ด๋ ‡๊ฒŒ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค.