ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 지뢰찾기 (中 폭탄 수 세기)
    코딩/C언어 2019. 3. 18. 18:38
    반응형
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    #define X_VALUE 5
    #define Y_VALUE 5
     
    void readBombInfo(char grid[][Y_VALUE + 1])
    {
        int i;
     
        printf("input Grid\n");
        
        for (i = 0; i < X_VALUE; i++)
            scanf("%s", grid[i]);
    }
     
    void countBomb(char grid[][Y_VALUE + 1], int numOfBombs[][Y_VALUE])
    {
        int i, j, n, k;
     
        for (i = 0; i < X_VALUE; i++)
            for (j = 0; j < Y_VALUE;j++)
                if (grid[i][j] == '*')
                {
                    for (n = i - 1; n <= i + 1; n++)
                    {
                        if (n < 0 || n >= X_VALUE)
                            continue;
     
                        for (k = j - 1; k <= j + 1; k++)
                        {
                            if (k < 0 || k >= Y_VALUE)
                                continue;
     
                            numOfBombs[n][k]++;
                        }
                    }
                }
    }
     
    void display_numOfBombs(char grid[][Y_VALUE + 1], int numOfBombs[][Y_VALUE])
    {
        int i, j;
     
        printf("\n--------------------------------\n");
     
        for (i = 0; i < X_VALUE; i++)
        {
            for (j = 0; j < Y_VALUE; j++)
                if (grid[i][j] == '*')
                    printf("*");
                else
                    printf("%d", numOfBombs[i][j]);
     
            printf("\n");
        }
    }
     
    int main(void)
    {
        char grid[X_VALUE][Y_VALUE + 1];
        int numOfBombs[X_VALUE][Y_VALUE] = { 0 };
     
        readBombInfo(grid);
        countBomb(grid, numOfBombs);
        display_numOfBombs(grid, numOfBombs);
    }
    cs

     

    * = 폭탄

    # = 아무것도 없는 곳

     

    결과:

     

    반응형

    '코딩 > C언어' 카테고리의 다른 글

    조합 계산 (재귀함수)  (1) 2019.03.18
    제곱 구하기 (재귀함수)  (0) 2019.03.18
    합집합 && 교집합 && 차집합  (0) 2018.09.27
    값 탐색 && 가장 큰 수 && 총 합  (0) 2018.09.27
    좌석 예약  (0) 2018.09.27
Designed by Tistory.