부터 9까지의 자연수로 채워진 7*7 격자판이 주어지면 격자판 위에서 가로방향 또는 세로방향으로 길이 5자리 회문수가 몇 개 있는지 구하는 프로그램을 작성하세요. 회문수란 121과 같이 앞에서부터 읽으나 뒤에서부터 읽으나 같은 수를 말합니다.
빨간색처럼 구부러진 경우(87178)는 회문수로 간주하지 않습니다.
▣ 입력설명
1부터 9까지의 자연수로 채워진 7*7격자판이 주어집니다.
▣ 출력설명
5자리 회문수의 개수를 출력합니다.
▣ 입력예제
2 4 1 5 3 2 6
3 5 1 8 7 1 7
8 3 2 7 1 3 8
6 1 2 3 2 1 1
1 3 1 3 5 3 2
1 1 2 5 6 5 2
1 2 2 2 2 1 5
▣ 출력예제
3
강사님 풀이
import sys
sys.stdin=open("input.txt", "r")
board = [list(map(int, input().split())) for _ in range(7)]
count = 0
for i in range(3): #3바퀴만 돌아도 되는 이유 : 7*7행렬이기 때문에 0~4까지, 1~5까지, 2~6까지만 확인해보면 되기 때문
for j in range(7): #7바퀴 돌아야하는 이유 : 7열이기 때문
temp = board[j][i:i+5] #i부터 i+5까지 리스트 슬라이스
if temp == temp[::-1]: #[::-1]하면 리스트 reverse 되므로 정상 리스트 vs reverse리스트 비교
count += 1
for k in range(2): #0열 vs 5열, 1열 vs 4열, 2번만 5//2 = 2이므로 2번만 2
if board[i+k][j] != board[i+5-k-1][j]:
break
else:
count += 1
print(count)
'코테풀이 > 인프런 파이썬 알고리즘' 카테고리의 다른 글
탐색&시뮬레이션(string, 1차원, 2차원 리스트 탐색 )_10_스토쿠(스도쿠) 검사 (0) | 2021.08.11 |
---|---|
탐색&시뮬레이션(string, 1차원, 2차원 리스트 탐색 )_10_봉우리 (0) | 2021.08.10 |
탐색&시뮬레이션(string, 1차원, 2차원 리스트 탐색 )_8_곳감(모래시계) (0) | 2021.08.09 |
탐색&시뮬레이션(string, 1차원, 2차원 리스트 탐색 )_7_사과나무(다이아몬드) (0) | 2021.08.06 |
탐색&시뮬레이션(string, 1차원, 2차원 리스트 탐색 )_6_격자판 최대합 (0) | 2021.08.04 |
탐색&시뮬레이션(string, 1차원, 2차원 리스트 탐색 )_11_격자판 회문수