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

강재원·2022년 11월 24일
0

[코딩테스트] C#

목록 보기
187/200



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

using System;
using System.Collections;
using System.Text;

class Program
{
    static void Main() {
        StringBuilder sb = new StringBuilder();
        string[] s=Console.ReadLine().Split(' ');
        int r=int.Parse(s[0]);
        int c=int.Parse(s[1]);
        char[,] arr=new char[r,c];
        
        for(int i=0;i<r;i++){
            string s1=Console.ReadLine();
            for(int j=0;j<c;j++){
                arr[i,j]=s1[j];
            }
        }
        
        bool check=true;
        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=false;
                                Console.WriteLine(0);
                                return;
                            }
                        }
                    }
                }
            }
        }
        if(!check) Console.WriteLine(0);
        else{
            Console.WriteLine(1);
            for(int i=0;i<r;i++){
                for(int j=0;j<c;j++){
                    sb.Append(arr[i,j]);
                }
                sb.Append("\n");
            }
            Console.WriteLine(sb.ToString());
        }
    }
}
profile
개념정리 & 문법 정리 & 알고리즘 공부

0개의 댓글