왜 indexerror가 뜨는거죠?
조회수 413회
분명 m n 의 최소값은 8 이라 8 - 7 은 1 이고 1 - 0 은 1일텐데 왜인지 모르겠습니다
stwiwh = [['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']]
stwibl = [['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']]
mnn = input()
m = int(mnn.split()[0])
n = int(mnn.split()[1])
counter = 0
board = []
#아래는 제출용
while counter == m - 1 :
line = input()
board.append([])
for a in range(0,len(line)) :
board[counter].append(line[a])
counter += 1
min = 2501
# 아래는 테스트용
#board = [['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','W']]
alp = m - 7
bet = n - 7
for a in range(0,alp) :
for b in range(0,bet) :
whcounter = 0
blcounter = 0
done = False
al = a + 8
be = b + 8
stancouY = -1
stancouX = -1
for c in range(a,al) :
if done == True :
break
stancouY += 1
stancouX = -1
for d in range(b,be) :
stancouX += 1
if board[c][d] != stwiwh[stancouY][stancouX] :
whcounter += 1
if board[c][d] != stwibl[stancouY][stancouX] :
blcounter += 1
if whcounter > min and blcounter > min :
done = True
if whcounter < min or blcounter < min :
if whcounter < blcounter :
min = whcounter
else :
min = blcounter
if min == 2501 :
print(0)
else :
print(min)
더 이상한것은,
for e in range(8,51) :
for f in range(8,51) :
a = str(e)
b = str(f)
stwiwh = [['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']]
stwibl = [['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']]
mnn = a + ' ' + b
print('mnn :',mnn)
m = int(mnn.split()[0])
n = int(mnn.split()[1])
counter = 0
board = []
#아래는 제출용
for a in range(0,m) :
board.append([])
for b in range(0,n):
board[a].append('W')
min = 2501
# 아래는 테스트용
#board = [['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B'],['B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','B','W']]
alp = m - 7
bet = n - 7
for a in range(0,alp) :
for b in range(0,bet) :
whcounter = 0
blcounter = 0
done = False
al = a + 8
be = b + 8
stancouY = -1
stancouX = -1
for c in range(a,al) :
if done == True :
break
stancouY += 1
stancouX = -1
for d in range(b,be) :
stancouX += 1
if board[c][d] != stwiwh[stancouY][stancouX] :
whcounter += 1
if board[c][d] != stwibl[stancouY][stancouX] :
blcounter += 1
if whcounter > min and blcounter > min :
done = True
if whcounter < min or blcounter < min :
if whcounter < blcounter :
min = whcounter
else :
min = blcounter
if min == 2501 :
print(0)
else :
print(min)
이런 코드를 실행해보면 에러가 하나도 발생하지 않는단 것입니다. 도데체 무었이 문제인 거죠?
댓글 입력