티스토리 뷰

PS

백준 1012. 유기농 배추

tose33 2021. 4. 13. 23:48

www.acmicpc.net/problem/1012

 

1012번: 유기농 배추

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

www.acmicpc.net

 

#include <vector>
using namespace std;
#include <iostream>
#include <algorithm>

int M, N, K;
int cnt = 0;
int cab[51][51];
bool mark[51][51];
int dc[4] = {0, 1, 0, -1};
int dr[4] = {-1, 0, 1, 0};

void dfs(int r, int c) {
    if(mark[r][c] || cab[r][c] == 0) return;
    mark[r][c] = true;

    for(int i = 0; i < 4; i++) {
        int nr = r + dr[i];
        int nc = c + dc[i];

        if(nr < 0 || nr > N || nc < 0 || nc > M) continue;

        dfs(nr, nc);
    }
}


void init() {
    cnt = 0;
    fill(&cab[0][0], &cab[51][51], 0);
    fill(&mark[0][0], &mark[51][51], false);
}

int main() {
    int T;
    cin >> T;

    while(T--) {
        cin >> M >> N >> K;

        for(int i = 0; i < K; i++) {
            int x, y;
            cin >> x >> y;
            cab[y][x] = 1;
        }

        for(int i = 0; i < N; i++) {
            for(int j = 0; j < M; j++) {
                if(!mark[i][j] && cab[i][j] == 1) {
                    dfs(i, j);
                    cnt++;
                }
            }
        }
        cout << cnt << endl;
        init();
    }

}

 

특이했던 점은 데이터를 배열처럼 주지않고 x,y좌표로 주기 때문에 주의해야 한다. 

데이터를 배열에 저장할때 arr[x][y] 이런식으로 하지않고 arr[y][x] 이런 식으로 저장하면 일반 배열 풀때처럼 풀수있다. 

'PS' 카테고리의 다른 글

백준 1697. 숨바꼭질  (0) 2021.04.14
백준 7569. 토마토  (0) 2021.04.14
백준 11655. ROT13  (0) 2021.04.08
백준 10875. 피보나치수 5  (0) 2021.04.06
백준 1316. 그룹 단어 체커  (0) 2021.04.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함