Menu
Coddy logo textTech

복습 챌린지 #2

Coddy C 여정의 기초 섹션에 포함된 레슨. 63개 중 60번째.

challenge icon

챌린지

쉬움

C에서 배열 조작 능력을 테스트해 봅시다!

2차원 배열(행렬)에 대한 연산을 수행하는 프로그램을 작성하세요:

  1. 다음 작업을 수행하는 rotateMatrix 함수를 작성하세요:
    • 원본 행렬, 회전된 결과를 채울 두 번째 행렬, 그리고 크기를 전달받습니다
    • 행렬을 시계 방향으로 90도 회전합니다
      행렬을 회전하려면 다음을 사용하세요: rotated[j][size-1-i] = original[i][j];
    • 결과를 두 번째 행렬에 기록합니다(함수는 void를 반환하며, 제공된 main이 결과를 대신 출력합니다)
  2. 다음 작업을 수행하는 findElement 함수를 작성하세요:
    • 2차원 정수 배열, 배열의 크기, 그리고 찾을 값을 전달받습니다
    • 행렬에서 찾을 값이 발견되면 1을 반환하고, 그렇지 않으면 0을 반환합니다

직접 해보기

#include <stdio.h>

void rotateMatrix(int original[][10], int rotated[][10], int size);
int findElement(int matrix[][10], int size, int target);

void rotateMatrix(int original[][10], int rotated[][10], int size) {
    // 여기에 코드를 작성하세요
}

int findElement(int matrix[][10], int size, int target) {
    // 여기에 코드를 작성하세요
}

// 아래 코드를 수정하지 마세요
int main() {
    int size;
    scanf("%d", &size);
    int matrix[10][10];
    int rotated[10][10];
    
    int value = 1;
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            matrix[i][j] = value++;
        }
    }
    
    printf("Original Matrix:\n");
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    
    rotateMatrix(matrix, rotated, size);
    
    printf("Rotated Matrix:\n");
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            printf("%d ", rotated[i][j]);
        }
        printf("\n");
    }
    printf("\n");
    
    int result = findElement(matrix, size, 10);
    if (result) {
        printf("Found\n");
    } else {
        printf("Not found\n");
    }
    
    return 0;
}

기초의 모든 레슨

직접 연습해 보세요: 온라인 C 컴파일러