2022 하계 모각코

[2022 모각코] 4회차 (2022.07.10.)

수빈최 2022. 7. 10. 22:32

학습 목표

: 파이썬 학습

 

학습 내용

: 백준 문제풀이(1012번)를 통한 파이썬 학습

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

 

1012번: 유기농 배추

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

www.acmicpc.net

 

문제
예제 입출력

 

 

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
                count += 1
    print(count)

 

학습 결과(풀이)

: n과 m크기를 가지는 배열을 만들어준 후 0 값을 1로 바꿈으로써 배추의 위치를 지정해준다. n, m크기의 배열을 차례대로 검사하여 값이 1인 배추가 있다면 bfs를 실행시켜 주위를 검사해 1인 값을 0으로 바꿔준다. bfs를 실행시킬때마다 count값을 증가시켜 결과값으로 count를 출력해준다.