[BOJ] 1012. 유기농 배추 Python 풀이

2023. 4. 5. 14:59·Algorithm/BOJ

import sys
from collections import deque

t = int(sys.stdin.readline())

for _ in range(t):
    m, n, k = map(int, sys.stdin.readline().split())
    # 배추밭 0으로 초기화
    field = [[0 for _ in range(m)] for _ in range(n)]
    # 필요한 배추흰지렁이 마리 수 초기화
    worm = 0

    # 배추밭에 배추 심기
    for _ in range(k):
        x, y = map(int, sys.stdin.readline().split())
        field[y][x] = 1
    
    # 우, 좌, 상, 하 탐색
    dx = [0, 0, -1, 1]
    dy = [1, -1, 0, 0]
    
    def bfs(field, a, b):
        queue = deque()
        queue.append((a, b))
        # 현재 배추 방문 처리
        field[a][b] = 0

        while queue:
            x, y = queue.popleft()

            for i in range(4):
                nx = x + dx[i]
                ny = y + dy[i]

                # 범위에서 벗어나는 경우 무시
                if nx < 0 or nx >= n or ny < 0 or ny >= m:
                    continue
                
                # 만약 상하좌우 중 배추가 심어진 곳이 있다면
                if field[nx][ny] == 1:
                    # 0으로 만들고 큐에 추가한다.
                    field[nx][ny] = 0
                    queue.append((nx, ny))

    # 배추밭을 돌아다니면서 배추가 심어져 있다면 bfs로 탐색
    for i in range(n):
        for j in range(m):
            if field[i][j] == 1:
                bfs(field, i, j)
                worm += 1
    
    print(worm)

 

저작자표시 (새창열림)

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 11724. 연결 요소의 개수 Python 풀이  (0) 2023.04.14
[BOJ] 2003. 수들의 합 2 Python 풀이  (0) 2023.03.29
[BOJ] 1158. 요세푸스 문제 Python 풀이  (0) 2023.02.17
[BOJ] 9012. 괄호 Python 풀이  (0) 2023.01.05
[BOJ] 10814. 나이순 정렬 Python 풀이  (0) 2023.01.04
'Algorithm/BOJ' 카테고리의 다른 글
  • [BOJ] 11724. 연결 요소의 개수 Python 풀이
  • [BOJ] 2003. 수들의 합 2 Python 풀이
  • [BOJ] 1158. 요세푸스 문제 Python 풀이
  • [BOJ] 9012. 괄호 Python 풀이
짱다미
짱다미
고양이🐈 뜨개질🧶 게임🕹️🎮을 좋아하는 개발자
  • 짱다미
    저디벨
    짱다미
  • 전체
    오늘
    어제
    • 분류 전체보기 (12)
      • 개발이야기 (6)
        • 알아보자 (1)
        • JAVA (0)
        • Kotlin (0)
        • Python (1)
        • HTML, CSS (0)
        • JAVASCRIPT (2)
        • Linux (0)
        • Data Analysis (0)
      • Algorithm (6)
        • 알고리즘 정복기 (0)
        • BOJ (6)
      • 실수일지 (0)
      • 사는이야기 (0)
      • 독후감 (0)
  • 블로그 메뉴

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

    • Github
    • 일상
  • 공지사항

  • 인기 글

  • 태그

    ai모델
    boj
    소프트웨어 마에스트로
    ChatGPT
    알고리즘
    딥러닝
    python
    코딩테스트
    GPT-3
    javascript
    code
    web
    BFS
    두 포인터
    SW 마에스트로
    Algorithm
    백준
    너비우선탐색
    대화형AI
    인공신경망
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
짱다미
[BOJ] 1012. 유기농 배추 Python 풀이
상단으로

티스토리툴바