문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
코드
def count(arr):
cnt = 0
for i in range(8):
for j in range(8 - N + 1):
temp = [] # 중간에 temp변수 초기화 필요
for n in range(N):
temp.append(arr[i][j + n]) #j좌표에 0-n만큼 더한 범위
if temp[::-1] == temp:
cnt += 1
return cnt
for t in range(1, 10 + 1):
N = int(input())
arr = [list(map(str, input())) for _ in range(8)]
arr_ = list(zip(*arr)) # 전치행렬
res = count(arr) + count(arr_)
print('#{} {}'.format(t, res))
전치행렬
- 행과 열이 바뀐 배열
- list(zip(*arr)) => 2차원 리스트 안의 i번째 리스트의 각 j번째 요소를 뽑아서 한 리스트로 묶어줌
- list(map(list, zip(*arr))) => zip함수 사용시 튜플 반환이므로 안에 요소도 리스트로 바꾸고 싶다면 map() 활용
format()
- print( '{} {}'.format(변수, or 식) )
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] 1221 : GNS (파이썬) (1) | 2023.10.28 |
---|---|
[SWEA] 1979 : 어디에 단어가 들어갈 수 있을까 (파이썬) (0) | 2023.10.24 |
[SWEA] 2001 : 파리 퇴치 (파이썬) (0) | 2023.10.17 |
[SWEA] 1206 : [S/W 문제해결 기본] 1일차 - View (1) | 2023.10.15 |
[SWEA] 1954 : 달팽이 숫자 (0) | 2023.10.14 |