알고리즘 (Python)
사과나무 (다이아몬드)
ppirae
2022. 3. 23. 13:55
인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다.
파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의
파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런...
www.inflearn.com
내가 이런 배열문제, 별찍기 문제에 약한것 같다.
고민 하고 방법이 잘 떠오르지 않아 강의를 봤다.
#강의 풀이
n = int(input())
a = [list(map(int,input().split())) for _ in range(n)]
res = 0
s = e = n//2
for i in range(n):
for j in range(s, e+1):
res += a[i][j]
if i < n//2:
s -= 1
e += 1
else:
s += 1
e -= 1
print(res)
처음에 가운데 한칸을 먹고
start와 end 변수를 이용해 한칸씩 늘려나가다가
i 값이 중간을 넘으면
다시 줄여나가는 방법으로 합계값을 구하면 된다.