알고리즘 공부/파이썬(Python)

SWEA 2805번 D3 농작물 수확하기 파이썬

마달랭 2024. 7. 2. 00:18
반응형

리뷰1

n의 범위가 크지 않아 시간 복잡도를 신경쓰지 않고 풀었다.

 

문제 풀이

  1. 입력값을 리스트로 받아온 뒤 개행시킨다.
  2. 개행시킨 리스트를 map을 통해 int로 변형시키고 리스트로 다시 받아온다.
  3. n은 홀수 고정이므로 중앙 인덱스를 초기화 해준다.
  4. 마름모 꼴의 위쪽 부분과 아래쪽부분의 수확량을 각각의 for문을 통해 구해준다.
  5. 테스트케이스 번호와 총 수확량을 출력한다.

 

참고 사항

위쪽이나 아래쪽의 for문의 range값을 달리 해줘야 한다. 한쪽은 중앙 인덱스 + 1, 한쪽은 중앙 인덱스

 

정답 코드

def q2805():
    # SWEA 2805번 D3 농작물 수확하기 파이썬
    t = int(input())
    for i in range(1, t + 1):
        n = int(input())
        lst = [list(map(int, *list(input().split()))) for _ in range(n)]
        center = n // 2
        result = 0
        for j in range(center + 1):
            result += sum(lst[j][center - j:center + j + 1])
        for j in range(center):
            result += sum(lst[-j - 1][center - j:center + j + 1])
        print(f'#{i} {result}')
q2805()

 

728x90
반응형