[BOJ] 1012. 유기농 배추

2025. 7. 23. 10:47·BOJ

📌 문제 제목

문제 링크: BOJ 1012

🗒️ 문제 설명

배추밭에 배추흰지렁이를 둬서 해충을 잡아먹게 하려고 한다.

배추흰지렁이는 인접한 다른 배추로 이동할 수 있다.

배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으면 된다.

총 몇 마리의 지렁이가 필요한 지 출력하라.

시간 제한: 1초

메모리 제한: 512MB

1 <= M <= 50

1 <= N <= 50

1 <= K <= 2,500


💡 문제 해결 아이디어

  • BFS를 한번 돌 때 인접한 배추를 다 돌기 때문에 BFS 한번에 지렁이 한 마리가 필요.

⌛️ 시간 복잡도

  • O(T x (N x M + K))

✅ 최종 코드

import sys
from collections import deque
input = sys.stdin.readline

T = int(input().strip())

direction = [(-1, 0), (1, 0), (0, -1), (0, 1)]


def bfs(graph, x, y, visited, N, M):
    queue = deque([(x, y)])
    visited[x][y] = True
    while queue:
        xp, yp = queue.popleft()
        for dx, dy in direction:
            nx, ny = xp + dx, yp + dy
            if not (0 <= nx < N and 0 <= ny < M):
                continue
            if graph[nx][ny] == 1 and not visited[nx][ny]:
                queue.append((nx, ny))
                visited[nx][ny] = True


for _ in range(T):
    M, N, K = map(int, input().split())

    graph = [[0] * M for _ in range(N)]
    visited = [[False] * M for _ in range(N)]

    for _ in range(K):
        Y, X = map(int, input().split())
        graph[X][Y] = 1

    answer = 0
    for i in range(N):
        for j in range(M):
            if graph[i][j] == 1 and not visited[i][j]:
                bfs(graph, i, j, visited, N, M)
                answer += 1
    print(answer)

 

'BOJ' 카테고리의 다른 글

[BOJ] 7569. 토마토  (0) 2025.07.23
[BOJ] 10026. 적록색약  (0) 2025.07.23
[BOJ] 1697. 숨바꼭질  (0) 2025.07.22
[BOJ] 4179. 불!  (0) 2025.07.22
[BOJ] 7576. 토마토  (0) 2025.07.22
'BOJ' 카테고리의 다른 글
  • [BOJ] 7569. 토마토
  • [BOJ] 10026. 적록색약
  • [BOJ] 1697. 숨바꼭질
  • [BOJ] 4179. 불!
rubato.dev
rubato.dev
  • rubato.dev
    rubato.dev
    rubato.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (33) N
      • BOJ (28) N
      • 알고리즘 (4) N
      • TIL (0)
      • Project (1) N
  • 인기 글

  • 태그

    Algorithm
    Zelda
    dp
    PriorityQueue
    DFS
    투 포인터
    BFS
    stack
    Next.js
    BOJ
    backtracking
    Project
    PYTHON
    스택
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
rubato.dev
[BOJ] 1012. 유기농 배추
상단으로

티스토리툴바