์ฒด์คํ ๋ค์ ์น ํ๊ธฐ ๋ฌธ์ ๋ brute force ์ ์์์ ์๋ ค์ฃผ๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ๋ค.
๋ฌธ์ ์ ์
1. N*M ๊ฐ์ ์ ์ฌ๊ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ณด๋๊ฐ ์ฃผ์ด์ง๋ค.
2. ์ด ์ค์์ 8*8 ์ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์ฒด์คํ์ ๋ง๋๋ ค๊ณ ํ๋ค.
3. ์ฒด์คํ์ ํ ์ ์ฌ๊ฐํ์ด ๊ฒ์์์ด๋ผ๋ฉด ๋ค๋ฅธ ์ ์ฌ๊ฐํ์ ํฐ์์ด ๋์์ผํ๋ค.
4. N*M ๊ฐ ์ค์์ ์์๋ก 8*8 ํฌ๊ธฐ์ ๋ณด๋๋ฅผ ๊บผ๋์ผ๋ (3) ์ ์ด๊ธธ ์ ์๋ค.
5. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ๋๋ก ์ฒด์ค ํ์ ๋ง๋ค๊ธฐ ์ํด์ ๋ค์ ์์ ์น ํด์ผ ํ๋ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด๋ผ.
์์ด๋์ด
1. ์ฒด์คํ์ 8*8 ๋ณด๋๋ [0][0] ์์น์ ์์ด ๊ฒ์ ์์ด๊ฑฐ๋ ํฐ์์ธ ๊ฒฝ์ฐ ๋๊ฐ์ง์ด๋ค. ๋ฐ๋ผ์ ์๋์ฒ๋ผ ์ด๊ฑฐ๋ ์๋์ ์์ ๋ฐ๊ฟ [0][0] ์ด ํฐ์์ธ ๊ฒฝ์ฐ๋ง ๊ฐ๋ฅํ๋ค.
B | W | B | W | B | W | B | W |
W | B | W | B | W | B | W | B |
B | W | B | W | B | W | B | W |
W | B | W | B | W | B | W | B |
B | W | B | W | B | W | B | W |
W | B | W | B | W | B | W | B |
B | W | B | W | B | W | B | W |
W | B | W | B | W | B | W | B |
2. ๊ทธ๋ ๋ค๋ฉด (1) ์ ์ ์ ๋ฅผ ๊ฐ์ง๊ณ ์ ์ฒด M*N ์ ๋ณด๋์ [0][0] ๋ถํฐ 8by8 ์ ์๋์ฐ๋ฅผ ๋ง๋ค๋ฉฐ ์๋ก ์์น ํด์ผ ํ๋ ์๋ฅผ ๊ณ์ฐํ๋ฉด ๋๋ค.
3. ์๋ก ์์น ํด์ผ ํ๋ ์๋ ๋ ํผ๋ฐ์ค๋ก ๊ฐ๊ณ ์๋ ๋ณด๋์ ์ผ๋ง๋ ๋ค๋ฅธ ์์ ๊ฐ๊ณ ์๋์ง๋ฅผ ํ์ธํ๋ฉด ๋๋ค.
- (1) ์ ๋ ํผ๋ฐ์ค๋ก ๊ฐ๊ณ ์๋ ๋ณด๋๋ ๋๊ฐ์ง ๊ฒฝ์ฐ์ ์๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
for i in range(0,8):
for j in range(0,8):
if ref_board[i][j] == window_board[window_start_index+i][window_start_index+j]:
cnt+=1
return min(cnt,64-cnt)
์ ์์ฌ์ฝ๋ ์ ๋๋ก ํด๊ฒฐ ํ ์ ์์ ๊ฒ์ด๋ค.
์ ์ฒด์ฝ๋
import sys
ref_board=[['W', 'B', 'W', 'B', 'W', 'B', 'W', 'B'],
['B', 'W', 'B', 'W', 'B', 'W', 'B', 'W'],
['W', 'B', 'W', 'B', 'W', 'B', 'W', 'B'],
['B', 'W', 'B', 'W', 'B', 'W', 'B', 'W'],
['W', 'B', 'W', 'B', 'W', 'B', 'W', 'B'],
['B', 'W', 'B', 'W', 'B', 'W', 'B', 'W'],
['W', 'B', 'W', 'B', 'W', 'B', 'W', 'B'],
['B', 'W', 'B', 'W', 'B', 'W', 'B', 'W']]
n, m = map(int, sys.stdin.readline().split())
whole_board = []
res=n*m
for _ in range(n):
whole_board.append(list(sys.stdin.readline().strip('\n')))
def window(x, y):
cnt=0
for i in range(8):
for j in range(8):
if chess[i][j]==whole_board[x+i][y+j]:
cnt+=1
return min(cnt, 64-cnt)
for i in range(n-7):
for j in range(m-7):
res=min(res, window(i, j))
print(res)
'Develop > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 1152) ๋จ์ด์๊ฐ์ [Python] (0) | 2024.09.04 |
---|---|
๋ฐฑ์ค 10890) ์ํ๋ฒณ ์ฐพ๊ธฐ [Python] (0) | 2024.08.24 |