Sad Puppy 3 [SWEA D3] 1215. [S/W 문제해결 기본] 3일차 - 회문1 :: 개발자 아지트
for i in range(10):
    length = int(input())
    check=[]
    for j in range(8):
        stringg = input()
        check.append(stringg)
    

    #print(check)
    answer = 0
    ccheck = 0
    if length % 2 == 0: # 짝수
        checkN = length // 2
        ccheck = 0
    else:
        checkN = ((length+1)//2)-1 # 홀수 한 가운데 
        ccheck = 1
    
    for one in check: # 가로 체크
        stackk = []
        if ccheck == 0:
            for idx, k in enumerate(one):
                if idx > len(one) - length:
                    break
                
                for ik in range(checkN):
                    stackk.append(one[idx+1])
                
                good = 0
                for jk in range(checkN):
                    print
                    if stackk.pop == one[checkN+idx+1]:
                        good = 1
                    else:
                        good = 0
                        break
                    
                if good == 1:
                        answer+=1
        else:
            for idx, k in enumerate(one):
                if idx > len(one) - length:
                    break
                
                for ik in range(checkN):
                    stackk.append(one[idx+1])
                
                good = 0
                stackk.pop()

                for jk in range(checkN-1):
                    if stackk.pop == one[checkN+idx+1]:
                        good = 1
                    else:
                        good = 0
                    
                if good == 1:
                        answer+=1
    
    for p in range(8): # 세로 체크
        stackk = []
        if ccheck == 0:
            for idx, two in enumerate(check):
                if idx > len(two) - length:
                    break

                for ik in range(checkN):
                    stackk.append(check[idx+ik][p])
                
                good = 0
                for jk in range(checkN):
                    if stackk.pop == check[checkN+idx+jk][p]:
                        good = 1
                    else:
                        good = 0
                    
                if good == 1:
                        answer+=1
        else:
            # 홀수 
            for idx, two in enumerate(check):
                if idx > len(two) - length:
                    break
                
                for ik in range(checkN):
                    stackk.append(check[idx+ik][p])
                
                good = 0
                stackk.pop()
                for jk in range(checkN-1):
                    if stackk.pop == check[checkN+idx+jk][p]:
                        good = 1
                    else:
                        good = 0
                    
                if good == 1:
                        answer+=1


    
    
    print("#"+str(i+1), str(answer))

+ Recent posts