Deep Learning study

백준 14503문제 본문

백준 문제 코드

백준 14503문제

HwaniL.choi 2019. 12. 18. 20:54
반응형
#include <bits/stdc++.h>
using namespace std;

#define FOR(i,a,b) for(int i=a ; i<b ; i++)

int board[51][51],N,M,r,c,d,cnt;
int x[4] = {-1,0,1,0};
int y[4] = {0,1,0,-1};
bool check(int a,int b){
    return a<N && b<M && a>=0 && b>=0;
}

void clean(){
    if(!board[r][c]) board[r][c] = 2, cnt++;

    FOR(i,0,4){
        d = (d+3)%4;
        if(check(r+x[d],c+y[d]) && !board[r+x[d]][c+y[d]]){
            r += x[d], c += y[d];
            clean();
            return;
        }
    }

    if(!check(r-x[d],c-y[d]) || board[r-x[d]][c-y[d]] == 1) return;
    else r-=x[d], c-=y[d], clean();
}

int main(){
    cin >> N >> M;
    cin >> r >> c >> d;
    FOR(i,0,N) FOR(j,0,M) cin >> board[i][j];

    clean();
    cout << cnt << endl;
    return 0;
}
반응형

'백준 문제 코드' 카테고리의 다른 글

백준 17144문제  (0) 2019.12.31
백준 14888문제  (0) 2019.12.31
백준 14889문제  (0) 2019.12.17
백준 3190문제  (0) 2019.12.16
백준 14500문제  (0) 2019.12.16
Comments