📌
1부터 9까지의 자연수로 채워진 7*7 격자판이 주어지면 격자판 위에서 가로방향 또는 세로방향으로 길이 5자리 회문수가 몇 개 있는지 구하는 프로그램을 작성하세요. 회문수란 121과 같이 앞에서부터 읽으나 뒤에서부터 읽으나 같은 수를 말합니다.
< input >
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
✔️ code
import sys
sys.stdin=open("input.txt", "r")
arr=[list(map(int, input().split())) for _ in range(7)] #7x7 matrix
cnt=0
#행->열 탐색
#첫 원소부터 다음 5번째까지 비교하면 된다.
#첫 원소는 0~2까지 (i+5가 행의 마지막 원소가 될 때까지)
for i in range(3):
for j in range(7):
#tmp=arr[j][i:i+5]
#if tmp==tmp[::-1]:
# cnt+=1
if arr[j][i:i+5]==arr[j][i+4:i-1:-1]:
cnt+=1
for k in range(2):
if arr[i+k][j]!=arr[i+5-k-1][j]:
break
else:
cnt+=1
print(cnt)
>>>
열 비교는 도저히 어떻게 해야하는지 몰라서 강의 도움을 받았다.
행에 있는 원소와 달리(행은 열만 바뀌면 되니까)
열 비교는 행이 계속 바뀌어야 해서 하나하나 비교가 어려웠다!
'알고리즘' 카테고리의 다른 글
[알고리즘] 프로그래머스 신규 아이디 추천 (0) | 2022.02.24 |
---|---|
[결정 알고리즘] 랜선자르기 (0) | 2022.02.22 |
[알고리즘] 스도쿠 (0) | 2022.02.19 |
[알고리즘] 프로그래머스 신고 결과 받기 (0) | 2022.02.17 |
[알고리즘] 봉우리 (0) | 2022.02.07 |