백준 - 2차원 배열

2022. 11. 12. 12:21백준 - C

728x90

백준의 2차원 배열 문제들을 C로 풀이한 것입니다.

1. 행렬 덧셈

문제 해결 코드는 다음과 같습니다.

#include <stdio.h>

int main(void){
    int a[100][100], b[100][100];
    int n, m, i, j;
    
    scanf("%d %d", &n, &m);
    
    for(i = 0; i < n; i++){
        for(j = 0; j < m; j++){
            scanf("%d", &a[i][j]);
        }
    }
    
    for(i = 0; i < n; i++){
        for(j = 0; j < m; j++){
            scanf("%d", &b[i][j]);
        }
    }
    
    for(i = 0; i < n; i++){
        for(j = 0; j < m; j++){
            printf("%d ", a[i][j] + b[i][j]);
        }
        printf("\n");
    }
    return 0;
}

성공

2. 최댓값

문제 해결 코드는 다음과 같습니다.

#include <stdio.h>

int main(void){
    int i, j, max = 0, max_i, max_j;
    int board[9][9];

    for(i = 0; i < 9; i++){
        for(j = 0; j < 9; j++){
            scanf("%d", &board[i][j]);
            if(board[i][j] >= max){
                max = board[i][j];
                max_i = i + 1;
                max_j = j + 1;
            }
        }
    }
    
    printf("%d\n", max);
    printf("%d %d\n", max_i, max_j);
    return 0;
}

성공

3. 색종이

문제 해결 코드는 다음과 같습니다.

#include <stdio.h>

int main(void){
    int n;
    int i, j, k, x, y, cnt = 0;
    int board[100][100] = { 0 };
    
    scanf("%d", &n);
    
    for(i = 0; i < n; i++){
        scanf("%d %d", &x, &y);
        for(j = 0; j < 10; j++){
            for(k = 0; k < 10; k++){
                if(board[y + j][x + k] != 1){
                    board[y + j][x + k] = 1;
                }
            }
        }
    }
    
    for(i = 0; i < 100; i++){
        for(j = 0; j < 100; j++){
            if(board[i][j] == 1){
                cnt++;
            }
        }
    }
    
    printf("%d\n", cnt);
    return 0;
}

성공

 

728x90

'백준 - C' 카테고리의 다른 글

백준 - 반복문  (0) 2022.11.12
백준 - 1차원 배열  (0) 2022.11.12
백준 - 주사위 세개  (0) 2022.10.28
백준 - 오븐 시계  (0) 2022.10.28
백준 - 알람 시계  (0) 2022.10.28