[백준 알고리즘] 1012번: 유기농 배추 (Python / 파이썬)

2024. 1. 19. 06:21·알고리즘/백준
문제 접근

간단한 bfs 너비우선탐색 문제이다.

1) 밭을 돌면서 1을 발견할 때마다 bfs를 실행한다.

2) bfs 안에서, 이어진 1인 곳들을 방문하며 0으로 바꿔놓는다.

3) bfs가 끝날 때마다 정답에 1을 더한다.

 

정답 코드
#1012번: 유기농 배추

import sys
from collections import deque

def bfs(field, x, y):
    queue = deque()
    queue.append((x, y))

    while queue:
        cur = queue.popleft()
        dx, dy = [0, 1, -1, 0], [1, 0, 0, -1]
        for i in range(4):
            nx, ny = cur[0] + dx[i], cur[1] + dy[i]
            if 0 <= nx < n and 0 <= ny < m and field[nx][ny] == 1:
                queue.append((nx, ny))
                field[nx][ny] = 0
    return 1

t = int(sys.stdin.readline().rstrip())
for _ in range(t):
    n, m, k = map(int, sys.stdin.readline().split())
    field = [[0] * m for _ in range(n)]
    start_points = []
    count = 0

    for _ in range(k):
        i, j = map(int, sys.stdin.readline().split())
        field[i][j] = 1
        start_points.append((i, j))

    for i in range(n):
        for j in range(m):
            if field[i][j] == 1:
                count += bfs(field, i, j)
    print(count)

 

1012번: 유기농 배추

차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 

www.acmicpc.net

 

저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준 알고리즘] 1780번: 종이의 개수 (Python / 파이썬)  (0) 2024.01.22
[백준 알고리즘] 2630번: 색종이 만들기 (Python / 파이썬)  (0) 2024.01.22
[백준 알고리즘] 7576번: 토마토 (Python / 파이썬)  (0) 2024.01.19
[백준 알고리즘] 2504번: 괄호의 값 (Python / 파이썬)  (0) 2024.01.18
[백준 알고리즘] 10799번: 쇠막대기 (Python / 파이썬)  (2) 2024.01.18
'알고리즘/백준' 카테고리의 다른 글
  • [백준 알고리즘] 1780번: 종이의 개수 (Python / 파이썬)
  • [백준 알고리즘] 2630번: 색종이 만들기 (Python / 파이썬)
  • [백준 알고리즘] 7576번: 토마토 (Python / 파이썬)
  • [백준 알고리즘] 2504번: 괄호의 값 (Python / 파이썬)
gyujh
gyujh
개발 공부 블로그
  • gyujh
    규
    gyujh
  • 전체
    오늘
    어제
    • 분류 전체보기 (86)
      • Backend&DB (3)
      • CS (5)
        • 컴퓨터구조 (1)
        • 소프트웨어공학 (4)
      • JavaScript (2)
      • Git (2)
      • 알고리즘 (73)
        • 개념 (3)
        • 백준 (70)
      • Projects (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    algorithm
    숏코딩
    답안
    딕셔너리
    정렬
    재귀
    구현
    프로그래머스
    답
    백준
    시간초과
    에러
    알고리즘
    런타임
    문자열
    정답
    스택
    풀이
    BOJ
    너비우선탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
gyujh
[백준 알고리즘] 1012번: 유기농 배추 (Python / 파이썬)
상단으로

티스토리툴바