1215. [S/W 문제해결 기본] 3일차 - 회문1

Sarah·2021년 8월 24일
0

SWE

목록 보기
1/19

출처 : SW Expert Academy

문제

글자판에서 가로, 세로를 모두 보아

제시된 길이를 가진 회문의 총 개수를 구하는 문제

[제약 사항]

각 칸의 들어가는 글자 : c언어 char type ('A', 'B', 'C' 중 하나)

글자 판 : 무조건 정사각형 8X8

회문 : ABA, ABBA, A 등 가로 세로 직선만 가능

[입력]
총 10개의 테스트 케이스

각 테스트 케이스의 첫 번째 줄 : 회문의 길이

다음 줄 : 테스트 케이스

[출력]

#테스트케이스(공백)찾은 회문의 개수

코드

# 0824
import sys
sys.stdin = open('input.txt')

T = 10
#
for tc in range(1,T+1):
    # 회문의 길이
    N = int(input())
    # 8X8 글자판
    arr = [list(map(str, input())) for _ in range(8)]
    cnt_row = 0
    cnt_col = 0

    # 행 검사
    for i in range(8):
        for j in range(8-N +1):
            result_row = ''
            for char in range(N):
                result_row += arr[i][j+char]
            # 회문 검사
            if result_row == result_row[::-1]:
                cnt_row += 1
    # 열 검사
    for i in range(8-N+1):
        for j in range(8):
            result_col = ''
            for char in range(N):
                result_col += arr[i+char][j]
            # 회문 검사 
            if result_col == result_col[::-1]:
                cnt_col += 1
    print("#{} {}".format(tc, cnt_row + cnt_col))
profile
2021.06 ~

0개의 댓글