본문 바로가기
알고리즘

[백준] 1012번: 유기농 배추 - python

by 육빔 2024. 3. 26.
728x90
반응형

https://www.acmicpc.net/problem/1012

 

1012번: 유기농 배추

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

www.acmicpc.net

 

BFS문제를 안푼지 오래되서 간만에 다시 풀었다.

처음 입력받을때부터 난관이었다.

 

입력받고 색칠하고

큐를 생성한 뒤 넣고 0으로 색칠한다. 

그리고 주변에 1이 있으면 큐에 다시 넣고

없을때까지 색칠한다.

from collections import deque
T = int(input())

dx = [1, 0, -1, 0]
dy = [0, -1, 0, 1]
for _ in range(T):
    m, n, k = map(int, input().split())
    arr = [[0 for j in range(n)] for i in range(m)]

    for i in range(k):
        a, b = map(int, input().split())  #입력받고 
        arr[a][b] = 1 #적용
    
    dq = deque()
    cnt = 0
    for i in range(m):
        for j in range(n):
            if arr[i][j]: #1이면 들어간다.
                cnt+=1
                dq.append((i, j))
                while dq: #q에 쳐넣고
                    x, y = dq.popleft()
                    for k in range(4):
                        nx = dx[k] + x
                        ny = dy[k] + y

                        if 0 <= nx < m and 0<= ny < n and arr[nx][ny] == 1:
                            arr[nx][ny] = 0
                            dq.append((nx, ny))

    print(cnt)

 

낫베드 같다.

728x90
반응형