File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import sys
2+
3+ input = sys .stdin .readline
4+
5+ n , m , k = map (int , input ().split ())
6+ board = []
7+ for _ in range (n ):
8+ board .append (list (map (str , input ().rstrip ())))
9+
10+ prefix_sum_black = [[0 ] * (m + 1 ) for _ in range (n + 1 )]
11+ prefix_sum_white = [[0 ] * (m + 1 ) for _ in range (n + 1 )]
12+
13+ for i in range (n ):
14+ for j in range (m ):
15+ prefix_sum_black [i ][j ] = prefix_sum_black [i - 1 ][j ] + prefix_sum_black [i ][j - 1 ] - prefix_sum_black [i - 1 ][j - 1 ]
16+ prefix_sum_white [i ][j ] = prefix_sum_white [i - 1 ][j ] + prefix_sum_white [i ][j - 1 ] - prefix_sum_white [i - 1 ][j - 1 ]
17+ if (i + j ) % 2 == 0 :
18+ if board [i ][j ] != 'B' :
19+ # 바꿔야 함
20+ prefix_sum_black [i ][j ] += 1
21+ else :
22+ if board [i ][j ] == 'B' :
23+ prefix_sum_white [i ][j ] += 1
24+
25+ count = float ('inf' )
26+ for i in range (1 , n - k + 2 ):
27+ for j in range (1 , m - k + 2 ):
28+ black_cnt = prefix_sum_black [i + k - 1 ][j + k - 1 ] - prefix_sum_black [i + k - 1 ][j - 1 ] - prefix_sum_black [i - 1 ][j + k - 1 ] + prefix_sum_black [i - 1 ][j - 1 ]
29+ white_cnt = prefix_sum_white [i + k - 1 ][j + k - 1 ] - prefix_sum_white [i + k - 1 ][j - 1 ] - prefix_sum_white [i - 1 ][j + k - 1 ] + prefix_sum_white [i - 1 ][j - 1 ]
30+ count = min (count , black_cnt , white_cnt )
31+
32+ print (count )
You can’t perform that action at this time.
0 commit comments