Gaegul's devlog

[SWEA] 1215. 회문1 본문

Algorithm/Algorithm 풀이

[SWEA] 1215. 회문1

부지런깨꾹이 2021. 8. 21. 15:23
728x90
반응형

SW Expert Academy [S/W 문제해결 기본] 시리즈

1215.  회문1

 

[문제]

"기러기" 또는 "level" 과 같이 거꾸로 읽어도 앞에서부터 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.

주어진 8x8 평면 글자판에서 가로, 세로를 모두 보아 제시된 길이를 가진 회문의 총 개수를 구하는 문제이다.


[입력]

각 테스트 케이스의 첫 번째 줄에는 찾아야 하는 회문의 길이가 주어지며, 다음 줄에 테스트 케이스가 주어진다.

총 10개의 테스트 케이스가 주어진다.


[출력]

#부호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 찾은 회문의 개수를 출력한다.


[Code]

def solve():
    length = int(input())  #4
    arr = [input() for _ in range(8)]    
    cnt = 0
    #행 회문 비교
    for r in range(8): #0 
        for c in range(8-length+1): #0~5
            row_list = []
            for i in range(length): #4
                row_list.append(arr[r][c+i]) #0행 [0][0] [0][1] [0][2] [0][3] , [0][1] [0][2] [0][3] [0][4] ...
            if row_list == row_list[::-1]: #리스트 요소와 거꾸로한 리스트 요소 비교
                cnt += 1
                          
    #열 회문 비교
    for r in range(8-length+1): 
        for c in range(8): 
            col_list = []
            for i in range(length):
                col_list.append(arr[r+i][c])
            if col_list == col_list[::-1]:
                cnt += 1
                    
    return cnt
    
for t in range(1,11): #10개 테스트 
    print(f'#{t} {solve()}')

 

⭐️ Solution

1. 입력으로 받는 회문길이에 따른 요소 조회 (세번째 for문)

2. 리스트 요소와 거꾸로한 리스트 요소 비교

 

출처

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14QpAaAAwCFAYi&categoryId=AV14QpAaAAwCFAYi&categoryType=CODE&problemTitle=s%2Fw&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=5

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

728x90
반응형

'Algorithm > Algorithm 풀이' 카테고리의 다른 글

[Algorithm 풀이] 완전탐색: ColorPaper  (0) 2022.09.24
[프로그래머스] 문자열 압축  (0) 2022.04.29
[SWEA] 1213. String  (0) 2021.08.21
[SWEA] 1210. Ladder1  (0) 2021.08.21
[SWEA] 1209. Sum  (0) 2021.08.21
Comments