1012번_유기농 배추
🅰 설계
import sys
sys.stdin = open("input.txt")
T = int(input())
for tc in range(1, T+1):
    # m: 가로길이, n: 세로길이, k: 배추개수
    m, n, k = map(int, input().split())
    # 입력된 데이터에 맞춰 밭 만들어 주기
    field = list(list(0 for i in range(m)) for _ in range(n))
    # 밭에 배추 심기
    for i in range(k):
        x, y = map(int, input().split())
        field[y][x] = 1
    # 지렁이 검사
    cnt = 0
    
# 이후 접근을 어떻게 해야할지...
🅰 모범답안
t = int(input())
dx = [1, -1, 0, 0]
dy = [0, 0, -1, 1]
def bfs(x, y):
    queue = [[x, y]]
    while queue:
        a, b = queue[0][0], queue[0][1]
        del queue[0]
        for i in range(4):
            q = a + dx[i]
            w = b + dy[i]
            if 0 <= q < n and 0 <= w < m and s[q][w] == 1:
                s[q][w] = 0
                queue.append([q, w])
for i in range(t):
    m, n, k = map(int, input().split())
    s = [[0] * m for i in range(n)]
    cnt = 0
    for j in range(k):
        a, b = map(int, input().split())
        s[b][a] = 1
    for q in range(n):
        for w in range(m):
            if s[q][w] == 1:
                bfs(q, w)
                s[q][w] = 0
                cnt += 1
    print(cnt)
✅ 후기
- 
데이터를 받아오고 기본 base에 넣어주는 부분까지는 구현했지만bfs를 돌면서 탐색하는 것이 아직 익숙치 않아 한참을 노트와 키보드만 끄적거리고 두들기다가 문제를 해결하지 못했다.
- 
이후 검색을 통해 풀이방법을 알 수 있었고 보다 많음 bfs,dfs문제를 풀어보면서 숙달해야겠다고 느꼈다.😨
