(Python 알고리즘) 검색 및 시뮬레이션(2D 목록 검색) – 사과나무(다이아몬드)

> 검색 및 시뮬레이션 (2D 목록 검색)

문제: 사과나무(다이아몬드)

현수의 농장은 N*N 그리드로 구성되어 있으며 각 그리드에는 사과나무가 심어져 있습니다. N의 크기는 항상 홀수입니다. 가을에는 사과를 수확해야 하는데 현수는 격자창에서 사과를 수확할 때 마름모 모양의 격자창만 수확하고 나머지 사과는 격자창에 남겨 새들이 먹는다.

N이 5이면 아래 그림과 같이 어두운 부분에서 사과가 수확됩니다.


매달린 나무에서 수확한 총 사과 수를 출력하십시오.

입력 설명
첫 번째 줄에는 자연수 N(홀수)(3<=N<=20)이 포함됩니다.
두 번째 행부터 N행까지 각 행에 N개의 자연수가 주어진다. 이 자연수는 각 그리드의 사과나무에 있는 사과의 수입니다. 각 그리드의 사과 수는 100개를 초과하지 않습니다.

종료 설명
수확한 총 사과 수를 출력합니다.

입력 예 1
5
10 13 10 12 15

12 39 30 23 11

11 25 50 53 15

19 27 29 37 27

19 13 30 13 19

출력 예 1

379

import sys

n = int(input())
a = (list(map(int, input().split())) for _ in range(n))
s = e = n//2
result = 0
for i in range(n):
	for j in range(s, e+1):
		result += a(i)(j) 
	if i < n//2:
		s-=1
		e+=1
    	else :
    		s+=1
        	e-=1

가리키다!

  • 같은 숫자를 두 변수에 대입
    s = e = n//2
  • 인덱스를 사용하세요!

원천

  • Infra: Python 알고리즘으로 문제 해결