728x90
SMALL
BFS ๋ฌธ์
https://www.acmicpc.net/problem/2583
๐ก ํ์ด์ฝ๋ (Python3 ์ฑ๊ณต)
import sys
from collections import deque
m, n, k = map(int, sys.stdin.readline().split())
visited = [[False] * (n) for _ in range(m)]
dy = [1, 0, -1, 0]
dx = [0, 1, 0, -1]
def bfs(y, x):
queue = deque()
cnt = 0
queue.append((y, x))
visited[y][x] = True
while queue:
y, x = queue.popleft()
cnt += 1
for ii in range(4):
ny = y + dy[ii]
nx = x + dx[ii]
if 0 <= ny < m and 0 <= nx < n:
if visited[ny][nx] == False:
visited[ny][nx] = True
queue.append((ny, nx))
return cnt
for _ in range(k):
x0, y0, x1, y1 = map(int, sys.stdin.readline().split())
for i in range(y0, y1, 1):
for j in range(x0, x1, 1):
if visited[i][j] == False:
visited[i][j] = True
num = 0
arr = []
for i in range(m):
for j in range(n):
if visited[i][j] == False:
arr.append(bfs(i, j))
num += 1
print(num)
arr.sort()
print(*arr)
728x90
LIST
'Algorithm > Graph' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๋คํธ์ํฌ (0) | 2025.01.04 |
---|---|
[๋ฐฑ์ค] 1647 : ๋์ ๋ถํ ๊ณํ (ํ์ด์ฌ) (2) | 2024.08.14 |
[๋ฐฑ์ค] 9019 : DSLR (pypy3) (0) | 2024.08.13 |
[๋ฐฑ์ค] 21736 : ํ๋ด๊ธฐ๋ ์น๊ตฌ๊ฐ ํ์ํด (ํ์ด์ฌ) (0) | 2024.07.27 |
[๋ฐฑ์ค] 1967 : ํธ๋ฆฌ์ ์ง๋ฆ (ํ์ด์ฌ) (0) | 2024.07.22 |