SSAFY/SWEA

[SWEA] #12712. 파리퇴치3_파이썬

728x90
반응형

풀기 전 생각해보기😮

  • +방향, x방향에 대해서 어떻게 탐색할 것인가
  • 세기가 달라질 때를 고려하는 방법은?

풀이🛫

T = int(input())
for t in range(T):
    N, M = map(int, input().split())
    arr = [list(map(int, input().split())) for i in range(N)]
    catch = []
    answer = 0

    # +형: 12, 3, 6, 9
    dpcol = [-1, 0, 1, 0]
    dprow = [0, 1, 0, -1]

    # x형: 2, 4, 8, 10
    dxcol = [1, -1, -1, 1]
    dxrow = [1, 1, -1, -1]


    # 세기가 M일 때 +형에서 잡을 수 있는 파리의 수
    for col in range(N):
        for row in range(N):
            fly = arr[col][row]
            for m in range(1,M):
                for v in range(4):
                    ncol = col+dpcol[v]*m
                    nrow = row+dprow[v]*m
                    if 0<=ncol<N and 0<=nrow<N:
                        fly += arr[ncol][nrow]
            catch.append(fly)

    # 세기가 M일 때 x형에서 잡을 수 있는 파리의 수
    for col in range(N):
        for row in range(N):
            fly = arr[col][row]
            for m in range(1,M):
                for v in range(4):
                    ncol = col+dxcol[v]*m
                    nrow = row+dxrow[v]*m
                    if 0<=ncol<N and 0<=nrow<N:
                        fly += arr[ncol][nrow]
            catch.append(fly)
	
    # 잡을 수 있는 파리의 수에서 최대값을 탐색
    for i in catch:
        if i > answer:
            answer = i
    print(f"#{t+1}", answer)

 

핵심 정리🎁

  • 탐색 방향(12, 3, 6, 9 / 2, 4, 8, 10)을 먼저 정해두고 값을 탐색하기

 

링크💎

 

SW Expert Academy

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

swexpertacademy.com

 

후기 😎

  • 변화량을 이용해서 푸는 문제에 적응되어가는 듯..!

 

 

 

'SSAFY > SWEA' 카테고리의 다른 글

[SWEA] #1216. 회문 2_파이썬  (0) 2022.08.16
[SWEA] #4861. 회문_파이썬  (0) 2022.08.16
[SWEA] 1959. 두 개의 숫자열  (0) 2022.08.15
[SWEA] #4831. 전기버스_파이썬  (0) 2022.08.12
[SWEA] #1211. Ladder2_파이썬  (0) 2022.08.11