-
section3.11 격자판 회문수알고리즘 2022. 10. 31. 17:01
1부터 9까지의 자연수로 채워진 7*7 격자판이 주어지면 격자판 위에서 가로방향 또는 세로 방향으로 길이 5자리 회문수가 몇 개 있는지 구하는 프로그램을 작성하세요. 회문수란 121과 같이 앞에서부터 읽으나 뒤에서부터 읽으나 같은 수를 말합니다.
빨간색처럼 구부러진 경우(87178)는 회문수로 간주하지 않습니다.
import sys sys.stdin = open("input.txt", "rt") chlist = [list(map(int, input().split())) for _ in range(7)] cnt = 0 # 가로 검사 2개 for x in range(7): for y in range(3): for z in range(2): if chlist[x][y+z] != chlist[x][y+4-z]: break else: cnt += 1 # 세로 검사 for x in range(3): for y in range(7): for z in range(2): if chlist[x+z][y] != chlist[x+4-z][y]: break else: cnt += 1 print(cnt)
비슷한 문제가 많았어서 어렵지 않았다
가로 세로를 한 번에 검사하고 싶었는데 cnt 값이 이상해져서 따로 진행했다
어쨌든 정답
import sys sys.stdin = open("input.txt", "rt") board = [list(map(int, input().split())) for _ in range(7)] cnt = 0 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): if board[i+k][j] != board[i+5-k-1][j]: break else: cnt += 1 print(cnt)
회문 검사할 때 reverse 사용하면 쉬운 것을 까먹었다
정답 코드가 내 코드에 비해 훨씬 짧다...
잘 익혀두자
드디어 section3 끝~!
728x90'알고리즘' 카테고리의 다른 글
Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 02 (0) 2022.11.01 Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬) :: DAY 01 (1) 2022.11.01 section3.10 스토쿠 검사 (0) 2022.10.31 section3.9 봉우리 (1) 2022.10.30 section3.8 곳감(모래시계) (0) 2022.10.30