Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- FastAPI
- autoencoder
- 알고리즘
- leetcode
- 완전탐색
- pep8
- PytorchLightning
- NaverAItech
- 프로그래머스
- 네이버AItech
- Kaggle
- 코딩테스트
- DeepLearning
- wandb
- GCP
- pytorch
- vscode
- Kubernetes
- FDS
- NLP
- Matplotlib
- GitHub Action
- GIT
- 백준
- docker
- python
- datascience
- github
- torchserve
- rnn
Archives
- Today
- Total
Sangmun
백준 14500번 테트로미노 본문
https://www.acmicpc.net/problem/14500
생성해야 하는 Matrix의 범위가 <=500으로 매우 작은 경우의 수를 가지고 문제를 읽다 보니 뭔가 그냥 브루트 포스로 풀어야 할 것 같아서 브루트 포스로 풀었다.
생성 가능한 폴리오미노를 전부 노가다로... 미리 정의해두고 Matrix의 크기만큼 순회를 하여 최대값을 찾는 방법으로 풀었으며 다행히 python3로도 제출해도 TLE는 나오지 않았다.
import sys
input = sys.stdin.readline
a,b = map(int,input().split())
matrix = []
for _ in range(a):
matrix.append(list(map(int,input().split())))
# 생성가능한 폴리오미노 사전 정의
polyomino = [[[0,0],[0,1],[1,0],[1,1]],
[[0,0],[0,1],[0,2],[0,3]],
[[0,0],[1,0],[2,0],[3,0]],
[[0,0],[1,0],[2,0],[2,1]],
[[0,1],[1,1],[2,1],[2,0]],
[[0,0],[0,1],[1,1],[2,1]],
[[0,0],[0,1],[1,0],[2,0]],
[[0,0],[1,0],[1,1],[2,1]],
[[0,1],[1,1],[1,0],[2,0]],
[[1,0],[1,1],[0,1],[0,2]],
[[0,0],[0,1],[1,1],[1,2]],
[[0,0],[0,1],[0,2],[1,1]],
[[0,1],[1,0],[1,1],[1,2]],
[[1,0],[1,1],[0,1],[2,1]],
[[0,0],[1,0],[2,0],[1,1]],
[[0,0],[1,0],[1,1],[1,2]],
[[1,0],[1,1],[1,2],[0,2]],
[[0,0],[0,1],[0,2],[1,0]],
[[0,0],[0,1],[0,2],[1,2]]
]
result = -1
# Matrix의 크기 만큼 인덱스를 순회 i => x축, j => y축
for i in range(a):
for j in range(b):
for each in polyomino:
tmp_sum = 0
flag = 0
# 생성가능한 테트로미노를 순회하면서 임시로 합계값을 계산
for k in each:
x = k[0] + i
y = k[1] + j
if 0 <= x < a and 0 <= y < b:
tmp_sum += matrix[x][y]
else:
# 4개로 구성된 테트로미노 중 하나라도 Matrix의 범위를 벗어나면 flag = 1
flag = 1
if flag:
continue
else:
# 이전에 찾은 합계값보다 작으면 결과값 갱신
if tmp_sum > result:
result = tmp_sum
print(result)
'알고리즘 > 백준' 카테고리의 다른 글
백준 11779번 최소비용 구하기 2 (0) | 2022.11.20 |
---|---|
백준 11758번 CCW (0) | 2022.11.10 |
백준 11403번 경로찾기 (0) | 2022.10.01 |
백준 14624번 - 전북대학교 (0) | 2022.09.28 |
백준 1766번 문제집 (0) | 2022.09.05 |
Comments