cpp) 백준 1012: 유기농 배추
본문 바로가기
코딩 테스트/백준 (C++, Python)

cpp) 백준 1012: 유기농 배추

by NEWSUN* 2023. 7. 4.

Problem

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

 

1012번: 유기농 배추

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

www.acmicpc.net

 

 

Solution

#include<iostream>
#include<vector>
#include<stack>

using namespace std;

int t;             // 테스트케이스 개수
int m, n;          // 배추밭 가로, 세로 길이
int k;             // 배추가 심어진 위치의 개수
bool map[50][50];  // 배추밭


void dfs(int row, int col){
    // 인덱스 범위 초과 예방
    if(row<0||row>=50) return;
    if(col<0||col>=50) return;

    // 이미 검사를 했거나 배추를 심은 땅이 아닌 경우 skip
    if(!map[row][col]) return;

    // 검사 완료(다시 볼 필요 없으므로 0)
    map[row][col]=0;

    //상하좌우
    dfs(row,col+1);
    dfs(row,col-1);
    dfs(row-1,col);
    dfs(row+1,col);
}



int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);

    cin >> t;
    for(int i=0;i<t;i++){
        cin >> m >> n >> k;
        for(int j=0;j<k;j++){
            int a, b;
            cin >> a >> b;
            map[a][b]=1;  // (a,b) 위치는 배추가 심어져 있음
        }
        int cnt = 0;  // 배추흰지렁이 수 = 정답값
        for(int row=0;row<m;row++){
            for(int col=0;col<n;col++){
                if(map[row][col]==1){
                    cnt++;
                    dfs(row,col);
                }
            }
        }
        cout << cnt << endl;
    }

    return 0;
}

 

 

Reference

https://bconfiden2.tistory.com/109

 

[백준] 1012.cpp : 유기농 배추

 

bconfiden2.tistory.com

 

'코딩 테스트 > 백준 (C++, Python)' 카테고리의 다른 글

cpp) 백준 10828: 스택  (0) 2023.07.08
cpp) 백준 2606: 바이러스  (0) 2023.07.05
cpp) 백준 11723: 집합  (0) 2023.07.01
cpp) 백준 1874: 스택 수열  (2) 2023.06.29
cpp) 백준 2805: 나무 자르기  (0) 2023.06.27