티스토리 뷰

 

SW Expert Academy

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

swexpertacademy.com


1. 문제 내용

 

 

2. 접근 방식

마름모는 0번째 행에서 1개, 1번째 행에서 3개, 2번째 행에서 5개...로 늘다가, 농장 크기의 딱 절반이 되는 행 이후부터는 다시 5 > 3 > 1로 감소한다. 따라서 left, right로 행 안에서 마름모에 해당하는 열의 범위를 표현하고, 행이 거듭될수록 left, right 를 양옆으로 한 칸씩 넓히다가 딱 절반째 행부터는 left, right 값을 한 칸씩 줄인다.

 

 

3. 정답 코드

def init() :
    n = int(input())
    data = []
    for i in range(n) :
        data.append(input())
    return n, data

def count_value() :
    left = n // 2
    right = n // 2 + 1
    
    result = 0
    for index, row in enumerate(farms) :
        for e in row[left : right] :
            result += int(e)
            
        if index < n // 2 :
            left -= 1
            right += 1
        else :
            left += 1
            right -= 1
            
    return result

T = int(input())

for test_case in range(1, T + 1):
    n, farms = init()
    result = count_value()

    print(f'#{test_case} {result}')
728x90