복습 챌린지 #2
Coddy C 여정의 Fundamentals 섹션에 포함된 레슨 — 63개 중 60번째.
챌린지
쉬움C 언어에서의 배열 조작 능력을 테스트해 봅시다!
2차원 배열(행렬)에 대한 연산을 수행하는 프로그램을 작성하세요:
- 다음을 수행하는
rotateMatrix함수를 만드세요:- 2차원 정수 배열과 그 크기를 인자로 받습니다.
- 행렬을 시계 방향으로 90도 회전시킵니다.
행렬을 회전시키기 위해 다음을 사용하세요:rotated[j][size-1-i] = original[i][j]; - 회전된 행렬을 반환합니다.
- 다음을 수행하는
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;
}