Python으로 구현한 1215번 [S/W 문제해결 기본] 3일차 - 회문1 문제 풀이입니다.
for tc in range(1, 11) :
k = int(input())
data = []
result = 0
# 가로
for _ in range(8) :
temp = input()
data.append(temp)
for i in range(8 - k + 1) :
if temp[i:i+k] == temp[i:i+k][::-1] :
result += 1
data = list(zip(*data))
# 세로
for i in range(8) :
for j in range(8 - k + 1) :
if data[i][j:j+k] == data[i][j:j+k][::-1] :
result += 1
print('#%d %d' % (tc, result))
1. 각 테스트 케이스마다 8개의 문자로 이루어진 문자열을 한 줄씩 입력받는데, 한 줄에 대하여 k개의 문자열이 회문이라면 result 값을 1 증가시킨다.
2. 세로로 회문을 검사하기 위해 zip()을 통해 data 리스트 요소의 행과 열을 바꾼다.
3. 이후 가로로 회문을 검사하는 방식과 비슷하게 코드를 구성하여 회문이 존재하면 result 값을 1 증가시킨다.
4. 최종적으로 해당 테스트 케이스 번호와 함께 result 값을 출력한다.
'SWEA(Python) 풀이 > D3' 카테고리의 다른 글
SWEA[D3] (Python) 1209번 [S/W 문제해결 기본] 2일차 - Sum 풀이 (0) | 2022.06.01 |
---|---|
SWEA[D3] (Python) 1213번 [S/W 문제해결 기본] 3일차 - String 풀이 (0) | 2022.06.01 |
SWEA[D3] (Python) 1217번 [S/W 문제해결 기본] 4일차 - 거듭 제곱 풀이 (0) | 2022.06.01 |
SWEA[D3] (Python) 1221번 [S/W 문제해결 기본] 5일차 - GNS 풀이 (0) | 2022.05.30 |
SWEA[D3] (Python) 1225번 [S/W 문제해결 기본] 7일차 - 암호생성기 풀이 (0) | 2022.05.30 |