Gaegul's devlog
[SWEA] 1215. 회문1 본문
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. 리스트 요소와 거꾸로한 리스트 요소 비교
출처
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