2021-02-04
문제 : https://www.acmicpc.net/problem/14500
브루트포스 문제! 완전 노가다 문제였다
처음에 폴리오미노 모양을 배열로 만들어서 넣을지 고민했는데 종이에 그려보니까 종류가 너무 많아서 바로 합 계산하는 코드로 만들었다
[소스코드]
https://github.com/jisun1125/algorithm-problem-solving/blob/main/baekjoon/no_14500.py
n, m = map(int, input().split())
t = []
for i in range(n):
t.append(list(map(int, input().split())))
#print(t)
ans = []
for i in range(n): # 세로
for j in range(m): # 가로
if j+3 < m:
ans.append(t[i][j]+t[i][j+1]+t[i][j+2]+t[i][j+3])
if i+3 < n:
ans.append(t[i][j]+t[i+1][j]+t[i+2][j]+t[i+3][j])
if j+1 < m and i+1 < n: # 정사각형
ans.append(t[i][j]+t[i+1][j]+t[i][j+1]+t[i+1][j+1])
if j+1 < m and i+2 < n:
ans.append(t[i][j] + t[i+1][j] + t[i+2][j] + t[i+2][j+1])
ans.append(t[i][j] + t[i][j+1] + t[i+1][j+1] + t[i+2][j+1])
ans.append(t[i][j+1] + t[i+1][j+1] + t[i+2][j] + t[i+2][j+1])
ans.append(t[i][j] + t[i][j+1] + t[i+1][j] + t[i+2][j])
ans.append(t[i][j] + t[i+1][j] + t[i+1][j+1] + t[i+2][j+1])
ans.append(t[i][j+1] + t[i+1][j] + t[i+1][j+1] + t[i+2][j])
ans.append(t[i][j] + t[i+1][j] + t[i+1][j+1] + t[i+2][j])
ans.append(t[i][j+1] + t[i+1][j] + t[i+1][j+1] + t[i+2][j+1])
if j+2<m and i+1<n:
ans.append(t[i][j] + t[i+1][j] + t[i][j+1] + t[i][j+2])
ans.append(t[i+1][j] + t[i+1][j+1] + t[i+1][j+2] + t[i][j+2])
ans.append(t[i][j] + t[i][j+1] + t[i][j+2] + t[i+1][j+2])
ans.append(t[i][j] + t[i+1][j] + t[i+1][j+1] + t[i+1][j+2])
ans.append(t[i+1][j] + t[i+1][j+1] + t[i][j+1] + t[i][j+2])
ans.append(t[i][j] + t[i][j+1] + t[i+1][j+1] + t[i+1][j+2])
ans.append(t[i][j] + t[i][j+1] + t[i+1][j+1] + t[i][j+2])
ans.append(t[i+1][j] + t[i][j+1] + t[i+1][j+1] + t[i+1][j+2])
print(max(ans))
'PS > 백준' 카테고리의 다른 글
[백준/Python(파이썬)] 15650 N과 M (2) (0) | 2021.02.14 |
---|---|
[백준/Python(파이썬)] 15649 N과 M (1) (0) | 2021.02.14 |
[백준/Python(파이썬)] 13023 ABCDE (0) | 2021.02.14 |
[백준/Python(파이썬)] 1987 알파벳 (0) | 2021.02.14 |
[백준/Python(파이썬)] 2309 일곱 난쟁이 (0) | 2021.02.14 |