본문 바로가기
알고리즘/SWEA

[파이썬] [SWEA] 4047. 영준이의 카드 카운팅

by SBOX Learning by doing 2021. 2. 25.
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIsY84KEPMDFAWN

 

SW Expert Academy

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

swexpertacademy.com

T = int(input())


def check(arr):

    # 좌상 좌하 우상 우하
    dr = [-1, 1, -1, 1]
    dc = [-1, -1, 1, 1]

    max_cnt = 0

    for i in range(N):
        for j in range(N):
            # 좌표 값
            cnt = arr[i][j]

            for k in range(4):
                dx = i + dr[k]
                dy = j + dc[k]

                # board 내에 있으면
                while 0 <= dx < N and 0 <= dy < N:

                    # 이동 후 값 더하기
                    cnt += arr[dx][dy]
                    dx = dx + dr[k]
                    dy = dy + dc[k]

            # max 값 갱신
            if max_cnt < cnt:
                max_cnt = cnt

    return max_cnt

for tc in range(1, T+1):

    N = int(input())
    arr = [list(map(int, input().split())) for _ in range(N)]

    result = check(arr)
    print('#{} {}'.format(tc, result))
반응형

댓글