> 검색 및 시뮬레이션 (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 알고리즘으로 문제 해결