SWEA(Python) 풀이/D3

SWEA[D3] (Python) 2805번 농작물 수확하기 풀이

개발윗미 2022. 5. 26. 15:30

Python으로 구현한 2805번 농작물 수확하기 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV7GLXqKAWYDFAXB&categoryId=AV7GLXqKAWYDFAXB&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=3&pageSize=10&pageIndex=9# 

 

SW Expert Academy

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

swexpertacademy.com


t = int(input())

for tc in range(1, t + 1) :
    n = int(input())
    data = [list(map(int, input())) for _ in range(n)]
    start, end = n // 2, n // 2

    result = 0
    for i in range(n) :
        for j in range(start, end + 1) :
            result += data[i][j]

        if i < n // 2 :
            start -= 1
            end += 1
        else :
            start += 1
            end -= 1

    print('#%d %d' % (tc, result))

 

1. 각 테스트 케이스마다 입력받은 n을 2로 나눈 값을 start와 end에 할당한다.

 

2. 2중 for문을 통해 data[i][j] 값을 result에 누적한다.

 

3. 한 열에 대한 반복 작업이 끝나고, 만약 현재의 i가 중간 값보다 작을 경우 start를 1 감소시키고 end를 1 증가시킨다.

 

4. 그렇지 않다면 반대로 start를 1 증가시키고 end를 1 감소시킨다.

 

5. 반복 수행이 모두 끝나면 최종적으로 해당 테스트 케이스 번호와 함께 result 값을 출력한다.