문제
출처 : https://www.acmicpc.net/problem/14500
N*M크기의 종이에 숫자들이 쓰여있다.
이 종이에 테트로미노하나를 놓았을때, 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 찾는 문제다.
소스코드
완전탐색으로 푼 문제다.
종이의 세로,가로가 각각 최대 500이며, 한번 탐색마다 (모든 폴리오미노를 본다했을때,) 40번이라고 하면, 총 탐색횟수는 250000*40 = 10000000가 되어서 시간초과를 피할수있다.
모든 칸을 하나씩보며, 해당 칸에서 테트로미노를 만들수있는 모든 경우의수를 다봐줬다.
X를 테트로미노가 있는 칸 이라고 할때,
OXO OXO
XXO OXX
OXO OXO ...
와 같은 테트로미노는 (내 구현상)확인하지 못해서,
OXO
XXX
OXO
(i,j)를 기준으로 십자가 모양의 모든칸의 합을 다 구해놓고 (동,서,남,북)칸을 빼가며 확인해줬다.
소스코드
'알고리즘 (2020 : 08 : 10 ~ ) > 구현, 시뮬' 카테고리의 다른 글
[백준 / BOJ] 1938 통나무 옮기기 (0) | 2021.04.27 |
---|---|
[백준 / BOJ] 17135 캐슬 디펜스 (0) | 2021.04.22 |
[백준 / BOJ] 16985 Maaaaaaaaaze (0) | 2021.04.08 |
[백준 / BOJ] 8980 택배 (0) | 2021.04.06 |
[백준 / BOJ] 1248 맞춰봐 (0) | 2021.04.04 |