문제
- N(홀수) X N의 사과나무 대지가 주어질 때 빨간 부분만 수확한다고 한다면 총 몇개의 사과를 수확할 수 있는지 출력해라
문제 풀이
import sys
sys.stdin = open("input.txt", "r")
n = int(input())
apple = [list(map(int,input().split())) for _ in range(n)]
s = e = n//2
result = 0
for i in range(n):
#start부분에서 end부분까지만 돌게 j 범위를 설정한다.
for j in range(s,e+1):
result += apple[i][j]
if i < n//2:
s -= 1
e += 1
else:
s += 1
e -= 1
print(result)
- 1 ~ n//2 지점까지는 역 삼각형 모양으로 구역이 증가됨에 따라 해당 부분은 s -= 1, e+=1로 사과 수확 범위를 넓혀주고n//2를 넘어가는 지점부터는 점점 구역이 줄어들기 때문에 s += 1 e-= 1을 해서 범위를 줄여 사과를 수확할 수 있게 한다.
- s, e+1 까지의 범위로 j를 제한해주고 if문으로 s와 e범위를 관리해준다.
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[탐색][시뮬레이션] - 봉우리(2차원 List) (0) | 2022.07.07 |
---|---|
[탐색][시뮬레이션] - 곶감(2차원 List) (0) | 2022.07.06 |
[탐색][시뮬레이션] - 격자판 최대합(2차원 List) (0) | 2022.07.06 |
[탐색][시뮬레이션] - 수들의 합(List) (0) | 2022.07.06 |
[탐색][시뮬레이션] - 카드 역배치(List) (0) | 2022.07.01 |