Part2.11_탐색&시뮬레이션_격자판 회문수

Eugenius1st·2022년 1월 10일
0

Python_algorithm

목록 보기
6/83

격자판 회문수

앞에서 읽으나 뒤에서 읽으나 같은 수를 구하여라

내가 생각한 코드

#1. Alt+W+N 입력하고 Alt+W+V :

import sys
sys.stdin = open("input.txt", "rt")

a = [list(map(int,input().split())) for _ in range(7)]
cnt = 0
for i in range(7):
    for j in range(3):
        if a[i][j] == a[i][j+4] and a[i][j+1] == a[i][j+3]:
            cnt += 1
        if a[j][i] == a[j+4][i] and a[j+1][i] == a[j+3][i]:
            cnt += 1
print(cnt)

100점 나왔다 ㅎ 더럽긴 하지만 이제 강의를 봐볼까??

선생님 코드

#1. Alt+W+N 입력하고 Alt+W+V :

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] #0부터 4까지 분리해 내는 슬라이스한다.
        if tmp == tmp[::-1]: #회문 탐색 방법!! 기억하라!!
            cnt += 1 # tmp[::-1]은 reverse 시키는 방법이다.

            # 여기서 세로는 리스트가 아니므로 슬라이스기능이 안된다.
        for k in range(2): # 가운데 빼고 2번만 돈다.
            if board[i+k][j] != board[i+5-k-1][j]:
                break
        else:
            cnt+=1
            
print(cnt)
profile
최강 프론트엔드 개발자가 되고싶은 안유진 입니다

0개의 댓글