Skip to main content

백준 1018

·310 words·2 mins· loading
Table of Contents

풀이 1

n

,

m=

map

(

int

,

input

()

.split

())

board=

list

()

for

i

in

range

(

n

):

board.append

(

input

())

min_numbers=

[]

for

i

in

range

(

n

-7

):

for

j

in

range

(

m

-7

):

cnt1 =

0

cnt2 =

0

for

k

in

range

(

i

,

i+

8

):

for

l

in

range

(

j

,

j +

8

):

체스판 규칙에 따라서
#

(k+ㅣ)%2가 0인 board[k][j]는 모두 a색이어야 하고
#

(k+ㅣ)%2가 1인 board[k][j]는 모두 b색이어야 한다.
#

if

(

k + l

)

%

2

==

0

:

if

board

[

k

][

l

]

!=

‘W’

:

cnt1 +=

1

else

:

cnt2 +=

1

else

:

if

board

[

k

][

l

]

!=

‘B’

:

cnt1 +=

1

else

:

cnt2 +=

1

print

(

cnt1

,

end=

‘|||’

)

print

(

cnt2

)

좀더 똑똑하게푸는법

board에서 자른 8*8크기를 각각

w로시작하는 체스판으로 채우는수 + B로 시작하는 체스판으로 채우는 수= 항상 64이다

n

,

m=

map

(

int

,

input

()

.split

())

board=list()
#

for i in range(n):
#

board.append(input())
#

minnum=

64

for

i

in

range

(

n

-7

):

for

j

in

range

(

m

-7

):

cnt =

0

for

k

in

range

(

i

,

i+

8

):

for

l

in

range

(

j

,

j +

8

):

if

(

k + l

)

%

2

==

0

:

if

board

[

k

][

l

]

!=

‘W’

:

cnt +=

1

else

:

if

board

[

k

][

l

]

!=

‘B’

:

cnt +=

1

if

cnt>=

32

:

cnt=

64

-cnt

minnum=

min

(

cnt

,

minnum

)

print

(

minnum

)

혹시나 입력하기귀찮을까봐

board=

[

‘BBBBBBBBWBWBW’

,

‘BBBBBBBBBWBWB’

,

‘BBBBBBBBWBWBW’

,

‘BBBBBBBBBWBWB’

,

‘BBBBBBBBWBWBW’

,

‘BBBBBBBBBWBWB’

,

‘BBBBBBBBWBWBW’

,

‘BBBBBBBBBWBWB’

,

‘WWWWWWWWWWBWB’

,

‘WWWWWWWWWWBWB’

]