728x90
이 번 문제는 일단 코드를 짜고 나서
다른 사람들이 짠 코드를 봤는데,
역시,, 코딩 결과는 같아도 사람마다 성격이 다르다는 것을 알았다
N,M=map(int,input().split())
chess=[[0 for i in range(M)] for j in range(N)]
verlist=[[0 for i in range(M)] for j in range(N)]
changecnt=[]
for i in range(N):
temp=input()
j=0
for a in temp:
chess[i][j]=a
j+=1
for i in range(N):
for j in range(M):
if i%2==0:
if j%2==0:
if chess[i][j]!='W':verlist[i][j]=1
else:
if chess[i][j]=='W':verlist[i][j]=1
else:
if j%2==0:
if chess[i][j]=='W':verlist[i][j]=1
else:
if chess[i][j]!='W':verlist[i][j]=1
for i in range(N-7):
for j in range(M-7):
cnt=0
for a in range(8):
for b in range(8):
cnt=cnt+verlist[i+a][j+b]
if cnt<=32:changecnt.append(cnt)
else: changecnt.append(64-cnt)
print(min(changecnt))
처음에는 일단 입력받은 체스칸을 첫 칸이 하얀색인 체스판으로 바꿀 때,
변동사항이 있는 부분만 값이 1로 바뀌도록 코드를 짰다.
첫 칸이 검은색인 체스판으로 바꾸는 것도 짰었는데,
생각 해 보니 첫칸이 하얀색인 체스판 기준으로 했을때의 반대로 생각하면 되는거라서 따로 코드를 안짰다.
1,0 값으로만 되어 있는 클론 리스트를 기준으로 8*8 로 모두 합해서
가장 적은 숫자를 출력하는 것으로 풀이했다.
값이 32(64의 반)이 넘어가는 경우에는 64에서 그 수를 뺀 값을 리스트에 추가했다.
(첫 칸을 하얀색으로 하는게 까만색으로 하는 것 보다 더 많은 변동사항이 있기 때문)
N,M=map(int,input().split())
chess=[[0 for i in range(M)] for j in range(N)]
changecnt=[]
for i in range(N):
temp=input()
j=0
for a in temp:
chess[i][j]=a
j+=1
for i in range(N-7):
for j in range(M-7):
cnt=0
for a in range(8):
for b in range(8):
if (i+a)%2==0:
if (j+b)%2==0:
if chess[i+a][j+b]!='W':cnt+=1
else:
if chess[i+a][j+b]=='W':cnt+=1
else:
if (j+b)%2==0:
if chess[i+a][j+b]=='W':cnt+=1
else:
if chess[i+a][j+b]!='W':cnt+=1
if cnt<=32:changecnt.append(cnt)
else: changecnt.append(64-cnt)
print(min(changecnt))
사람들이 풀이 한 것을 보고
굳이 변동 된 값의 배열을 생성 안하고, 변동사항이 있으면 값이 1씩 올라가는 것으로 코드를 짰다.
결과는 똑같은데 시간은 처음 풀이한 것이 조금 더 짧은 것 보니 한 번에 다 바꿔놓고 verifying 하는게 더 나은가보다.
아마도 두 번째 코드는 이전 8*8 체스판에 포함되어 있던 값들도 새로 다시 연산해야 해서 그런것 같음
코드는 두 번째 코딩이 조금 더 깔끔 해 보인다.
728x90
'Baekjoon Case' 카테고리의 다른 글
[백준 #2750] 수 정렬하기 - 파이썬(python) (0) | 2021.08.10 |
---|---|
[백준 #1436] 영화감독 숌 - 파이썬(python) (0) | 2021.08.10 |
[백준 #7568] 덩치등수구하기 - 파이썬(python) (0) | 2021.08.10 |
[백준 #2231] 분해합-파이썬 (0) | 2021.08.09 |
[백준 #2798] 블랙잭 - 파이썬 (0) | 2021.08.09 |