0926. dxdy(3)

sea·2023년 9월 25일
0

알고리즘

목록 보기
8/14
n = int(input())

arr_2d = [
    list(map(int, input().split()))
    for _ in range(n)
]

# 상하좌우 인접

dxs = [1, 0, -1, 0]
dys = [0, 1, 0, -1]

# 인접할 곳을 벗어날 경우

def in_range(x, y):
    return x >= 0 and x < n and y >= 0 and y < n

# 각 포인트 마다 4개가 생성될 거고 (상하좌우), 이때 얘들의 count 를 구해
# 그 담에 포인트별로 상하좌우 덧셈이 3 이상일 때

def four_count(x, y):
    count = 0
    for dx, dy in zip(dxs, dys):
        nx, ny = x + dx, y + dy
        if in_range(nx, ny) and arr_2d[nx][ny] == 1:
            count += 1

    return count

answer = 0
for i in range(n):
    for j in range(n):
        if four_count(i, j) >= 3:
            answer += 1
print(answer)

def, global, local variable

profile
달려가는중

0개의 댓글