파이썬 알고리즘

SWEA 2805 농작물 수확하기

뜻 지, 깨달음 오 2022. 9. 12. 13:37

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7GLXqKAWYDFAXB 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이 key point

 

1)

마름모를 반으로 나눠서 0부터 1/2 지점까지 파란칸들의 합,

그리고 1/2지점 다음 칸들부터 끝까지의 합을 따로 구하려고 했다.

 

n = 5 일때랑 n=7인 경우 두개만 생각해봐도 법칙이 찾아진다.. 다행

 

 

T = int(input())

for tc in range(1, T+1):
    n = int(input())
    arr = [list(map(int, input())) for _ in range(n)
    sum1 = 0

    #앞쪽 반 숫자 더하기
    for i in range((n//2)+1): 
        for j in range((n//2)-i, (n//2)+i+1):
            sum1 += arr[j][i]

    #뒤쪽 반 숫자 더하기
    for s in range((n//2)+1, n):
        for t in range(s-(n//2), n+(n//2)-s):
            sum1 += arr[t][s]


    print(f'#{tc} {sum1}')

코드 부분에서 주의할 점은

나는 x조건을 바깥쪽 for문에 먼저 써주고, 

x에 영향받는 y좌표에 대한 조건을 안쪽 for문에 써줬기 때문에

sum1+= arr[j][i]로  i, j 순서를 바꿔서 써줘야한다

'파이썬 알고리즘' 카테고리의 다른 글

SWEA 1221 GNS  (0) 2022.09.16
SWEA 4861 회문  (0) 2022.09.16
SWEA 13704 달팽이 숫자  (0) 2022.09.07
SWEA 13565 전기버스  (0) 2022.09.07
SWEA 13569 그래비티 풀이  (1) 2022.09.07