16268. 풍선팡2

D2

Problem

SW Expert Academy 풍선팡2

 

SW Expert Academy

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

swexpertacademy.com


Solution

1. 범위 내의 모든 값을 확인하는 완전 탐색을 구현한다.
2. 상하좌우를 돌 때, 자기 자신도 값에 포함하기 위해 초기 값을 자기 자신으로 둔다.
3. 최댓값을 찾기 위해  리스트를 하나 만들어 저장한다.
4. max() 함수를 통해 최댓값을 출력한다.

 


Code

move = [(1,0), (0,1), (-1,0), (0,-1)]
for test_case in range(1, int(input())+1):
    N, M = map(int, input().split())
    board = [list(map(int, input().split())) for _ in range(N)]
    i = j = 0
    pang = []       # 풍선 팡 값 저장용
    while i<N and j<M:      
        balloon = board[i][j]   # 풍선 팡!
        for di, dj in move:     # 상하 좌우 팡!
            ni = i + di
            nj = j + dj
            if 0<=ni<N and 0<=nj<M:
                balloon += board[ni][nj]
        pang.append(balloon)
        if j == M-1:            # 모든 값에 대해 확인
            i += 1
            j = 0
        else:
            j += 1
    print(f'#{test_case} {max(pang)}')



<부족한 부분은 댓글로 남겨주시면 저에게 도움이 됩니다!>

<그림 출처: SWEA 풍선팡 2>

반응형