본문 바로가기

백준 문제풀이

[C]늑대와 양 16956 문제 풀이

반응형

몰입캠프 다녀온 후 다시 재개하는 백준 하루 한 문제 챌린지입니다.

오늘은 16956 늑대와 양 문제풀이를 해보려고 합니다.

늑대가 위 아래로만 움직일 수 있으니까 좌우 양옆에 늑대가 없으면 성공이 아닐까?라는 단순한 생각으로 접근을 했습니다.

#include<stdio.h>
int main (void)
{
    char area [502][502]={0,};
    int row=0,col=0,isdone=0;
    
    scanf("%d %d",&row,&col);
    
    for(int i =1; i <= row; i++)
    {
        for(int j=1; j <= col ; j++)
        {
            scanf(" %c",&area[i][j]);
        }
    }
    
    for(int i =1; i <= row; i++)
    {
        for(int j=1; j <= col && !isdone ; j++)
        {
            if(area[i][j]=='S')
            {
                if(i>1 && area[i-1][j]=='.')//위가 .이면 D로 바꿔주자.
                    area[i-1][j]='D';
                if (i < row && area[i+1][j]=='.') //아래 처리
                    area[i+1][j]='D';
                if (j>1 && area[i][j-1]=='.')//왼쪽
                    area[i][j-1]='D';
                if(j < col && area[i][j+1]=='.')//오른쪽
                    area[i][j+1]='D';
                
                if((i>1 && area[i-1][j]=='W')|| //위
                   (i < row && area[i+1][j]=='W')|| //아래
                   (j>1 && area[i][j-1]=='W')|| //왼쪽
                   (j < col && area[i][j+1]=='W') ) //오른쪽
                {
                    printf("0");
                    isdone=1;
                }
                
                
            }
        }
    }
    if(!isdone)
    {
        printf("1\n");
    }
    for(int i =1; i <= row&&!isdone; i++)
    {
        
        for(int j=1; j <= col ; j++)
        {
            printf("%c",area[i][j]);
        }
        printf("\n");
    }
    
}

그랬더니 맞았다네요...정말 별 거 없는 문제였습니다.

반응형