중앙값 계속 체크해서 반환.
슬라이딩 윈도우처럼 돌리는건 불가능할까? 사실 세로로 삽입하면 한줄씩은 3개씩 빼고 넣는게 가능할지도?
import sys
input = sys.stdin.readline
def check_mid(x, y):
tmp = []
for i in range(x, x + 3):
for j in range(y, y + 3):
if tmp:
if tmp[-1] <= filters[i][j]:
tmp.append(filters[i][j])
else:
for k in range(len(tmp)):
if filters[i][j] < tmp[k]:
tmp.insert(k, filters[i][j])
break
else:
tmp.append(filters[i][j])
if tmp[4] >= T:
return True
return False
R, C = map(int, input().split())
filters = [list(map(int, input().split())) for __ in range(R)]
T = int(input())
cnt = 0
for i in range(R - 2):
for j in range(C - 2):
if check_mid(i, j):
cnt += 1
print(cnt)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 2667 단지번호붙이기 : union-find 풀이 (0) | 2021.10.13 |
---|---|
[백준][Python] 1940 주몽 (0) | 2021.10.13 |
[백준][Python] 2474 세 용액 (1) | 2021.10.07 |
[백준][Python] 1595 북쪽나라의 도로 : 함수 재활용 시 반환값에 주의 (0) | 2021.10.07 |
[백준][Pyhton] 2812 크게만들기 (0) | 2021.10.07 |