격자 안에서 모든 가능한 경우를 탐색하여 원하는 결과를 얻는 방법을 배우게 됩니다.
✔️격자에서의 완전탐색은 칸 단위로 원하는 지점을 모두 확인하는 방식으로 진행
# 격자 크기
n = int(input())
# 격자
grid = [list(map(int, input().split())) for _ in range(n)]
def get_num_of_coin(row_s, row_e, col_s, col_e):
num_of_coin = 0
for row in range(row_s, row_e + 1):
for col in range(col_s, col_e + 1):
num_of_coin += grid[row][col]
return num_of_coin
MAX_coin = 0
for row in range(n):
for col in range(n):
# 격자를 벗어나는지 확인
if row + 2 >= n or col + 2 >= n:
continue
# 동전 개수 확인
num_of_coin = get_num_of_coin(row, row + 2, col, col + 2)
# 동전 최대 개수
MAX_coin = max(MAX_coin, num_of_coin)
print(MAX_coin)
n, m = map(int, input().split())
grid = [list(map(int, input().split())) for _ in range(n)]
ans = 0
# 행에서 행복한 수열의 수
for row in range(n):
# 동일 원소에 자기 자신도 포함
cnt = 1
prev_col = 0
for col in range(n):
# 이전 열의 값이 현재 값과 같다면
if prev_col == grid[row][col]:
cnt += 1
else:
cnt = 1
# 이전 열의 값 갱신
prev_col = grid[row][col]
# 연속 횟수가 m보다 크면 ans 증가 후 다음 행으로
if cnt >= m:
ans += 1
break
# 열에서 행복한 수열의 수
for col in range(n):
# 동일 원소에 자기 자신도 포함
cnt = 1
prev_row = 0
for row in range(n):
# 이전 행의 값이 현재 값과 같다면
if prev_row == grid[row][col]:
cnt += 1
else:
cnt = 1
# 이전 행의 값 갱신
prev_row = grid[row][col]
# 연속 횟수가 m보다 크면 ans 증가 후 다음 열로
if cnt >= m:
ans += 1
break
print(ans)