내가 아는 연구소의 이미지는 클린딱딱인데 벽도 둘 수 있다니 굉장하다. 가벽 내지 방화벽 같은거 아닌가 싶은데 그럼 내가 만드는건 설계도의 일부이고, 나중에 건설업계 면접이라도 보는 날엔 이런 문제를 풀었다고 어필해야겠다.
https://www.acmicpc.net/problem/14502
from itertools import combinations
from collections import deque
import copy
n, m = map(int, input().split())
lab = [list(map(int, input().split())) for _ in range(n)]
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]
def bfs(field):
queue = deque()
for i in range(n):
for j in range(m):
if field[i][j] == 2:
queue.append((i, j))
while queue:
x, y = queue.popleft()
for dir in range(4):
nx, ny = x + dx[dir], y + dy[dir]
if 0 <= nx < n and 0 <= ny < m and field[nx][ny] == 0:
field[nx][ny] = 2
queue.append((nx, ny))
return sum(row.count(0) for row in field)
empties = [(i, j) for i in range(n) for j in range(m) if lab[i][j] == 0]
result = 0
for walls in combinations(empties, 3):
temp = copy.deepcopy(lab)
for x, y in walls:
temp[x][y] = 1
result = max(result, bfs(temp))
print(result)
'문제풀이' 카테고리의 다른 글
LEET-CODE 367 : Valid Perfect Square (0) | 2025.06.13 |
---|---|
팰린드롬을 효율적으로 찾는 매내처 알고리즘 (0) | 2025.05.22 |
BOJ 21736 : 헌내기는 친구가 필요해 (0) | 2025.05.21 |
BOJ 11659 : 구간 합 구하기 4 (0) | 2025.05.20 |
BOJ 11727 : 2xn 타일링 2 (0) | 2025.05.17 |