728x90
> 탐색 & 시뮬레이션 (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
a = [list(map(int, input().split())) for _ in range(7)]
for i in range(3):
for j in range(7):
tmp = board[j][i:i+5]
if tmp == tmp[::-1]:
cnt+=1
for k in range(2): # 세로로 비교는 slice() 사용 불가 ! 1차원에서만 사용 가능 for문으로 5글자 중 중간 글자 제외한 2번 비교
if board[i+k][j] != board[i+5-k-1][j]:
break
else :
cnt+=1
print(cnt)
⭐️ Point ! ⭐️
- for-else 문
for문을 돌면서 break되지 않았다면, else 문 실행 - 1차원 리스트에 slice 사용하면서 5글자를 합쳐 문자열로 사용하기
tmp = board[j][i:i+5]
출처
- 인프런 : 파이썬 알고리즘 문제 풀이
728x90
'Algorithm (Python, Java, SQL) > Inflearn Study' 카테고리의 다른 글
[Python Algorithm] 이분탐색(결정알고리즘) - 랜선 자르기 (1) | 2023.03.17 |
---|---|
[Python Algorithm] 이분탐색(결정알고리즘) - 이분 검색 (1) | 2023.03.16 |
[Python Algorithm] 탐색&시뮬레이션(2차원 리스트 탐색) - 스도쿠 검사 (2) | 2023.03.15 |
[Python Algorithm] 탐색&시뮬레이션(2차원 리스트 탐색) - 봉우리 (1) | 2023.03.14 |
[Python Algorithm] 탐색&시뮬레이션(2차원 리스트 탐색) - 곶감(모래시계) (3) | 2023.03.14 |