# 가로
def row():
global cnt
for i in range(8):
# 범위 제한(list err 예방)
for j in range(9 - n):
for k in range(n // 2):
if k != n // 2 - 1:
if board[i][j + k] != board[i][j + n - 1 - k]:
break
else:
if board[i][j + k] == board[i][j + n - 1 - k]:
cnt += 1
return
# 세로
def col():
global cnt
for i in range(8):
# 범위 제한
for j in range(9 - n):
for k in range(n // 2):
if k != n // 2 - 1:
if board[j + k][i] != board[j + n - 1 - k][i]:
break
else:
if board[j + k][i] == board[j + n - 1 - k][i]:
cnt += 1
return
for tc in range(1,11):
n = int(input())
board = [list(str(input())) for _ in range(8)]
cnt = 0
# 1인 경우에는 n//2가 0이 되기 때문에 따로 지정
if n == 1:
print('#{} {}'.format(tc,128))
else:
row()
col()
print('#{} {}'.format(tc,cnt))
그 외
느낀점
1. 파이썬에 할당된 시간이 30초이고, 회문의 크기가 8X8, tc는 10개이기 때문에 어떤 방법을 사용해도 시간이 넉넉하지 않을까?
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] C. Write and Erase - PYTHON #2386 (0) | 2021.01.26 |
---|---|
[SWEA 코딩] 새샘이와 세 소수 - PYTHON #5986 (0) | 2021.01.26 |
[SWEA 코딩] S/W 문제해결 기본 View - PYTHON #1206 (0) | 2021.01.23 |
[SWEA 코딩] 통역사 성경이 - PYTHON #7675 (0) | 2021.01.22 |
[SWEA 코딩] S/W 문제해결 기본 GNS - PYTHON #1221 (0) | 2021.01.20 |