D2
Problem
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
Solution
1. 범위 전체를 돌면서 모두 탐색하는 완전 탐색을 한다.
2. 방향을 의미하는 리스트를 만들고, 반복문을 통해 탐색한다.
3. 방향에 대해 리스트 내부 값만큼 퍼지는 경우를 반복문을 통해 구현한다.
4. 이 중 가장 큰 값을 저장하여 출력한다.
Code
for test_case in range(1, int(input())+1):
N, M = map(int, input().split())
arr = [list(map(int, input().split())) for _ in range(N)]
di = [0,0,1,-1]
dj = [1,-1,0,0]
max_pang = 0
for i in range(N):
for j in range(M):
pang = arr[i][j]
for k in range(4):
# arr[i][j] 횟수만큼 퍼지기
for l in range(1, arr[i][j]+1):
ni = i + di[k] * l
nj = j + dj[k] * l
# 범위 내에서만
if 0 <= ni < N and 0 <= nj < M:
#점수 합산
pang += arr[ni][nj]
# 최대 풍선팡 구하기
if max_pang < pang:
max_pang = pang
print(f'#{test_case} {max_pang}')
<부족한 부분은 댓글로 남겨주시면 저에게 도움이 됩니다!>
<그림출처: SWEA 풍선팡>
반응형
'Algorithm > SW Expert Academy Review' 카테고리의 다른 글
4837. [파이썬 S/W 문제해결 기본] 2일차 - 부분 집합의 합 (0) | 2023.03.05 |
---|---|
16268. 풍선팡2 (2) | 2023.03.05 |
1208. [S/W 문제해결 기본] 1일차 - Flatten (0) | 2023.03.05 |
4831. [파이썬 S/W 문제해결 기본] 1일차 - 전기버스 (0) | 2023.03.05 |
16180. 4834. [파이썬 S/W 문제해결 기본] 1일차 - 숫자 카드 (0) | 2023.03.05 |