[백준] 16956번 : 늑대와 양 - C

강재원·2022년 11월 24일
0

[코딩테스트] C/C++

목록 보기
187/200



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

#include<stdio.h>

int main() {
    int r,c;
    scanf("%d %d",&r,&c);
    char arr[r][c];
    for(int i=0;i<r;i++){
        char st[c+1];
        scanf("%s",&st);
        for(int j=0;j<c;j++){
            arr[i][j]=st[j];
        }
    }
    
    int check=1;
    int dx[]={0,0,1,-1};
    int dy[]={1,-1,0,0};
    
    for(int i=0;i<r;i++){
        for(int j=0;j<c;j++){
            if(arr[i][j]=='W'){
                for(int k=0;k<4;k++){
                    int x=i+dx[k];
                    int y=j+dy[k];
                    
                    if(x>=0 && x<r && y>=0 && y<c){
                        if(arr[x][y]=='.'){
                            arr[x][y]='D';
                        }
                        else if(arr[x][y]=='S'){
                            check=0;
                            printf("%d",0);
                            return 0;
                        }
                    }
                }
            }
        }
    }
    if(check==0) printf("%d",0);
    else{
        printf("%d\n",1);
        for(int i=0;i<r;i++){
            for(int j=0;j<c;j++){
                printf("%c",arr[i][j]);
            }
            printf("\n");
        }
    }
}
profile
개념정리 & 문법 정리 & 알고리즘 공부

0개의 댓글