본문 바로가기
Problem Solving/SWEA

[SWEA|파이썬] 2805. 농작물 수확하기 (D3)

by 청량리 물냉면 2023. 5. 8.
반응형
문제

https://tinyurl.com/2hnumpaj

 

SW Expert Academy

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

swexpertacademy.com

 

 

🐍파이썬
T = int(input())
for test_case in range(1, T + 1):
    N = int(input())
    worth = [list(map(int, input())) for _ in range(N)]
    sum = 0
    mid = N // 2
    start = mid
    end = mid
    for i in range(N):
        for j in range(start, end+1):
            sum += worth[i][j]
        if i < mid:	#상단(중간보다 위쪽), j의 범위 증가
            start-=1
            end+=1
        else:	#하단(중간+중간보다 아래쪽), j의 범위 감소
            start+=1
            end-=1
    print("#{} {}".format(test_case, sum))

range() 내부의 값을 조절하여 value 값을 더하는 풀이


T = int(input())
for test_case in range(1, T + 1):
    n = int(input())    #농장의 크기
    values = []
    n_sum = 0	#농장전체의 value
    for i in range(n):
        col = list(map(int, input().rstrip()))
        n_sum += sum(col)
        values.append(col)
    for i in range(n):
        if i < (n // 2):	#마름모 상단
            n_sum -= sum(values[i][:n//2-i])	#가치없는 value 빼기
            n_sum -= sum(values[i][-(n//2-i):])
        elif i > (n // 2):	#마름모 하단
            n_sum -= sum(values[i][:-(n//2-i)])
            n_sum -= sum(values[i][(n//2-i):])
    print("#{} {}".format(test_case, n_sum))

미리 농장 전체의 value를 구한 뒤 index를 조절하여 색칠되지 않은 부분의 value를 빼는 풀이 

 

ex) 5x5 크기 농장의 경우

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

👉 위와 같이 빨간색으로 표시된 부분의 value를 전체 농장 크기에서 빼준다.

 

반응형