728x90

오류가 계속 나왔었고 계속 시도해서 풀었다. check 의 열 구하는 과정에서 for 문 안에 기호가 틀린 부분이 있었다.

import sys
from itertools import permutations
from collections import deque
 
def check(k):
 
    answer = 0
 
    for i in range(0,len(k)):
 
        count = 1
 
        for j in range(1,len(k[i])):
 
            if k[i][j] == k[i][j-1]:
                count+=1
            else:
                count = 1
 
            if count>answer:
                answer = count
 
 
 
    for i in range(0,len(k)):
 
        count = 1
 
        for j in range(1,len(k[i])):
 
            if k[j][i] == k[j-1][i]:
                count+=1
            else:
                count = 1
 
            if count>answer:
                answer = count
 
    return answer
 
 
 
n = int(sys.stdin.readline())
 
k = [ ]
 
 
for i in range(n):
    k.append(list(sys.stdin.readline().rstrip()))
 
 
dx = [1,0]
dy = [0,-1]
 
# 주변 체크 하면서 바꿔보고 확인하고 answer 에 넣기
 
answer = [ ]
 
queue = deque()
 
queue.append([0,0])
 
ch = [ ]
 
ch.append([0,0])
 
for i in range(0,len(k)):
    for j in range(0,len(k[i])):       
 
 
        x,y = i,j
 
        for z in range(0,2):
            temp_x = x + dx[z]
            temp_y = y + dy[z]
 
            if 0<=temp_x<n and 0<=temp_y<n and k[temp_x][temp_y]!=k[x][y]:
 
 
                answer.append(check(k))
 
                temp = k[x][y]
                k[x][y] = k[temp_x][temp_y]
                k[temp_x][temp_y] = temp
 
 
 
                answer.append(check(k))
 
                temp = k[x][y]
                k[x][y] = k[temp_x][temp_y]
                k[temp_x][temp_y] = temp
 
                if [temp_x,temp_y] not in ch:
                    queue.append([temp_x,temp_y])
                    ch.append([temp_x,temp_y])
 
 
 
 
print(max(answer))
 
 
 
 
 
 
 
728x90

+ Recent posts