격자판 회문수
탐색 & 시뮬레이션 (string, 1차원, 2차원 리스트 탐색)
문제 ✏️
격자판 회문수
1부터 9까지의 자연수로 채워진 7*7 격자판이 주어지면 격자판 위에서 가로방향 또는
세로방향으로 길이 5자리 회문수가 몇 개 있는지 구하는 프로그램을 작성하세요.
회문수란 121과 같이 앞에서부터 읽으나 뒤에서부터 읽으나 같은 수를 말합니다.
빨간색처럼 구부러진 경우(87178)는 회문수로 간주하지 않습니다.
▣ 입력설명
1부터 9까지의 자연수로 채워진 7*7 격자판이 주어집니다.
▣ 출력설명
5자리 회문수의 개수를 출력합니다.
▣ 입력예제 1
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
▣ 출력예제 1
3
코드 💻
import sys
#sys.stdin=open("input.txt", "rt") # read text
board = [list(map(int, input().split())) for _ in range(7)] # 2중 리스트
cnt = 0
for i in range(3): # 5자리 회문수, 열 : 0-4, 1-5, 2-6 3번만 돌면됨
for j in range(7):
# 가로 방향으로 검증
tmp = board[j][i:i+5]
if tmp==tmp[::-1]:
cnt += 1
# 세로 방향으로 검증, 5자리 회문수, 행 : 0-4, 1-5, 2-6 3번만 돌면됨
for k in range(2): # 열방향은 슬라이싱 불가능, 5//2=2
if board[i+k][j] != board[i+5-k-1][k]:
break
else:
cnt += 1
print(cnt)
참고
- 인프런 : 파이썬 알고리즘 문제 풀이
Author And Source
이 문제에 관하여(격자판 회문수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsj3282/격자판-회문수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)