DevKim

[Python] 백준 #1012 유기농 배추 본문

알고리즘 PS

[Python] 백준 #1012 유기농 배추

on_doing 2020. 12. 19. 20:51
728x90

www.acmicpc.net/problem/1012

 

1012번: 유기농 배추

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

www.acmicpc.net

처음부터 반례까지 모두 찾아내고, 한번에 '성공!'을 받아내는걸 목표로 하고 있는 요즘.

문제 완벽하게 이해하고 반례를 찾아내는게 키포인트다.

꼼꼼하게 집중해서.!

 

DFS로 한번에 해결~

from collections import deque
que=deque()

dx=[-1,1,0,0]
dy=[0,0,-1,1]

result=[]
t=int(input())

for i in range(t): #테스트 케이스
    cnt=0
    
    #배추 정보 입력받기
    n,m,k=map(int,input().split())
    graph=[[] for i in range(n)]
    
    #배추 초기화   
    for i in range(n):
        for j in range(m):
            graph[i].append(0)
        
    for j in range(k): #배추 자리
        x,y=map(int,input().split())
        graph[x][y]= 1 #배추심기
    
    for q in range(n):
        for w in range(m):
            if(graph[q][w]==1):
                que.append([q,w])
                graph[q][w]=0 #체크한건 0으로
                while(que):
                    p=que.pop()
                    x=p[0]
                    y=p[1]
                    
                    #상하좌우 체크
                    for e in range(4):
                        xx=x+dx[e]
                        yy=y+dy[e]
                        
                        #벗어나는 경우 제외
                        if(xx>=0 and xx<n and yy>=0 and yy<m):
                            if(graph[xx][yy]==1):
                                que.append([xx,yy])
                                graph[xx][yy]=0 #체크한건 0으로
                
                cnt+=1
                
    result.append(cnt)            

for i in result:
    print(i)
728x90

'알고리즘 PS' 카테고리의 다른 글

[Python] 백준 #11047 동전 0  (0) 2020.12.19
[Python] 백준 #2839 설탕 배달  (0) 2020.12.19
[Python] 백준 #2606 바이러스  (0) 2020.12.19
[Python] 백준 #7576 토마토  (0) 2020.12.19
[Python] 백준 #2667 단지번호붙이기  (0) 2020.12.19
Comments