Difference between r1.5 and the current
@@ -16,12 +16,12 @@
* 출력 : line N + 1 ~ line 2의 값
* tip :
* N번보다 적게 볼 수도 있다.
* N * N 행렬을 곱한 결과를 반환하는 '''함수''' 작성
* int** matrix_mul(int **s, int **t, int N);
* #3 : qsort 써보기
* line 1 : 정렬 할 수의 개수 ( 0 < N <= 1,000,000)
* line 2 ~ : 정렬 할 수 (양의 정수, < 1,000,000)
* tip :
* N번보다 적게 볼 수도 있다.
* 배열을 뒤집지 않아도 된다.
* (이 문제에서는)배열을 뒤집지 않아도 된다.
* #2 : 정사각 행렬곱 함수 작성* N * N 행렬을 곱한 결과를 반환하는 '''함수''' 작성
* int** matrix_mul(int **s, int **t, int N);
* #3 : qsort 써보기
* void qsort(void* base, size_t n, size_t size, int (*comp)(void*, void*); //<stdlib.h>에 있는 표준 함수
* void qsort(void* base, size_t n, size_t size, int (*comp)(void*, void*)); //<stdlib.h>에 있는 표준 함수
* 입력 : * line 1 : 정렬 할 수의 개수 ( 0 < N <= 1,000,000)
* line 2 ~ : 정렬 할 수 (양의 정수, < 1,000,000)
@@ -30,7 +30,244 @@
* 좋은 정렬법을 아시면 직접 짜보세요!
* '''좋은''' 정렬법!
= 실습 =
-----------------------------------
* '''좋은''' 정렬법!
= 실습 =
* #2 테스트 코드
{{{
#include <stdio.h>
#include <stdlib.h>
int** matrix_mul(int **s, int **t, int N);
int main(int argc, char** argv){
int A[3][3] = {
{1, 1, 2},
{1, 0, 1},
{0, 3, 0}
};
int B[3][3] = {
{2, 1, 3},
{1, 3, 2},
{1, 2, 0}
};
int *parr_A[3] = {A[0], A[1], A[2]};
int *parr_B[3] = {B[0], B[1], B[2]};
int **AB = (void*)0;
int i, j, N = 3;
printf("A : \n");
for(i = 0; i < N; i++){
for(j = 0; j < N; j++){
printf("%d ", A[i][j]);
}
printf("\n");
}
printf("B : \n");
for(i = 0; i < N; i++){
for(j = 0; j < N; j++){
printf("%d ", B[i][j]);
}
printf("\n");
}
AB = matrix_mul(parr_A, parr_B, N);
if(AB){
printf("A x B : \n");
for(i = 0; i < N; i++){
for(j = 0; j < N; j++){
printf("%d ", AB[i][j]);
}
printf("\n");
}
}
return 0;
}
int** matrix_mul(int **s, int **t, int N){
//여기 작성
}
}}}
* 안재형
* #1
{{{
#include <stdio.h>
int main(void)
{
int *i = (int *)malloc(sizeof(int) * 1000000);
int *count_i = (int *)malloc(sizeof(int) * 1000000);
int input;
scanf("%d", &input);
for (int sentinel = 0; sentinel < input; sentinel++)
{
scanf("%d", &i[sentinel]);
}
for (int sentinel = 0; sentinel < input; sentinel++)
{
count_i[sentinel] = i[input - sentinel - 1];
}
for (int sentinel = 0; sentinel < input; sentinel++)
{
printf("%d ", count_i[sentinel]);
}
printf("\n");
return 0;
}
}}}
#2
{{{
int **matrix_mul(int **s, int **t, int N)
{
int **M = (int *)malloc(sizeof(int)*N);
int value;
for (int sentinel = 0; sentinel < N; sentinel++)
*(M + sentinel) = (int *)malloc(sizeof(int)*N);
for (int sentinel = 0; sentinel < N; sentinel++)
{
for (int sentinel_2 = 0; sentinel_2 < N; sentinel_2++)
{
value = 0;
for (int sentinel_3 = 0; sentinel_3 < N; sentinel_3++)
{
value += s[sentinel][sentinel_3] * t[sentinel_3][sentinel_2];
}
M[sentinel][sentinel_2] = value;
}
}
return M;
}
}}}
* 이민지
* #1
{{{
#include <stdio.h>
int main()
{
int arr[10000];
int min[10000];
int i,j, temp;
printf("자연수를 몇개 입력하실 건가요? : ");
scanf_s("%d", &i);
printf("자연수를 입력하세요. : \n");
for (j = 0; j < i; j++)
{
scanf_s("%d", &arr[j]);
}
for (j = 0; j < i / 2; j++)
{
min[j] = arr[i - j - 1];
}
for (j = i/2; j < i; j++)
{
min[j] = arr[i - j - 1];
}
printf("배열을 뒤집으면! \n");
for (j = 0; j < i ; j++)
{
printf("%d \n", min[j]);
}
return 0;
}
}}}
#2
{{{
#include <stdio.h>
#include <stdlib.h>
int** matrix_mul(int **s, int **t, int N);
int main(int argc, char** argv)
{
int A[3][3] = {
{ 1, 1, 2 },
{ 1, 0, 1 },
{ 0, 3, 0 }
};
int B[3][3] = {
{ 2, 1, 3 },
{ 1, 3, 2 },
{ 1, 2, 0 }
};
int *parr_A[3] = { A[0], A[1], A[2] };
int *parr_B[3] = { B[0], B[1], B[2] };
int **AB = (void*)0;
int i, j, N = 3;
printf("A : \n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%d ", A[i][j]);
}
printf("\n");
}
printf("B : \n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%d ", B[i][j]);
}
printf("\n");
}
AB = matrix_mul(parr_A, parr_B, N);
if (AB) {
printf("A x B : \n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%d ", AB[i][j]);
}
printf("\n");
}
}
return 0;
}
int** matrix_mul(int **s, int **t, int N)
{
int** re = (int**)malloc(sizeof(int*)*N);
int i,j,k,o;
for (i = 0; i < N; i++)
{
re[i] = (int*)malloc(sizeof(int)*N);
}
for (j = 0; j < N; j++)
{
for (k = 0; k < N; k++)
{
re[j][k] = 0;
for (o = 0; o < N; o++)
{
re[j][k] += s[j][o] * t[o][k];
}
}
}
return re;
}
}}}
= 기타 / 후기 / 방명록 =-----------------------------------
1. 예정 ¶
- 다음 주(6/6) : 현충일
- 어쩔까요?
- 어쩔까요?
- 다다음 주(6/13) : 시험대비 특강
- 1학기 종료 후
- 1안 : 여름방학때 한다.
- 2안 : 2학기에 한다.
- 3안 : 이대로 안녕한다.
- 1안 : 여름방학때 한다.
- 오늘은 실습날
- #1 : 배열 뒤집기
- 작성 후 위키에 올려주세요.
- 입력 :
- line 1 : 배열의 크기( 0 < N <= 1,000,000)
- line 2 ~ N + 1 : 배열에 들어갈 값(자연수, < 1,000,000)
- line 1 : 배열의 크기( 0 < N <= 1,000,000)
- 출력 : line N + 1 ~ line 2의 값
- tip :
- N번보다 적게 볼 수도 있다.
- (이 문제에서는)배열을 뒤집지 않아도 된다.
- N번보다 적게 볼 수도 있다.
- 작성 후 위키에 올려주세요.
- #2 : 정사각 행렬곱 함수 작성
- N * N 행렬을 곱한 결과를 반환하는 함수 작성
- int** matrix_mul(int **s, int **t, int N);
- N * N 행렬을 곱한 결과를 반환하는 함수 작성
- #3 : qsort 써보기
- void qsort(void* base, size_t n, size_t size, int (*comp)(void*, void*)); //<stdlib.h>에 있는 표준 함수
- 입력 :
- line 1 : 정렬 할 수의 개수 ( 0 < N <= 1,000,000)
- line 2 ~ : 정렬 할 수 (양의 정수, < 1,000,000)
- line 1 : 정렬 할 수의 개수 ( 0 < N <= 1,000,000)
- 출력 : 정렬 된 N개의 수
- tip :
- 좋은 정렬법을 아시면 직접 짜보세요!
- 좋은 정렬법!
- 좋은 정렬법을 아시면 직접 짜보세요!
- void qsort(void* base, size_t n, size_t size, int (*comp)(void*, void*)); //<stdlib.h>에 있는 표준 함수
2. 실습 ¶
- #2 테스트 코드
#include <stdio.h> #include <stdlib.h> int** matrix_mul(int **s, int **t, int N); int main(int argc, char** argv){ int A[3][3] = { {1, 1, 2}, {1, 0, 1}, {0, 3, 0} }; int B[3][3] = { {2, 1, 3}, {1, 3, 2}, {1, 2, 0} }; int *parr_A[3] = {A[0], A[1], A[2]}; int *parr_B[3] = {B[0], B[1], B[2]}; int **AB = (void*)0; int i, j, N = 3; printf("A : \n"); for(i = 0; i < N; i++){ for(j = 0; j < N; j++){ printf("%d ", A[i][j]); } printf("\n"); } printf("B : \n"); for(i = 0; i < N; i++){ for(j = 0; j < N; j++){ printf("%d ", B[i][j]); } printf("\n"); } AB = matrix_mul(parr_A, parr_B, N); if(AB){ printf("A x B : \n"); for(i = 0; i < N; i++){ for(j = 0; j < N; j++){ printf("%d ", AB[i][j]); } printf("\n"); } } return 0; } int** matrix_mul(int **s, int **t, int N){ //여기 작성 }
- 안재형
- #1
- #1
#include <stdio.h> int main(void) { int *i = (int *)malloc(sizeof(int) * 1000000); int *count_i = (int *)malloc(sizeof(int) * 1000000); int input; scanf("%d", &input); for (int sentinel = 0; sentinel < input; sentinel++) { scanf("%d", &i[sentinel]); } for (int sentinel = 0; sentinel < input; sentinel++) { count_i[sentinel] = i[input - sentinel - 1]; } for (int sentinel = 0; sentinel < input; sentinel++) { printf("%d ", count_i[sentinel]); } printf("\n"); return 0; }#2
int **matrix_mul(int **s, int **t, int N) { int **M = (int *)malloc(sizeof(int)*N); int value; for (int sentinel = 0; sentinel < N; sentinel++) *(M + sentinel) = (int *)malloc(sizeof(int)*N); for (int sentinel = 0; sentinel < N; sentinel++) { for (int sentinel_2 = 0; sentinel_2 < N; sentinel_2++) { value = 0; for (int sentinel_3 = 0; sentinel_3 < N; sentinel_3++) { value += s[sentinel][sentinel_3] * t[sentinel_3][sentinel_2]; } M[sentinel][sentinel_2] = value; } } return M; }
- 이민지
- #1
- #1
#include <stdio.h> int main() { int arr[10000]; int min[10000]; int i,j, temp; printf("자연수를 몇개 입력하실 건가요? : "); scanf_s("%d", &i); printf("자연수를 입력하세요. : \n"); for (j = 0; j < i; j++) { scanf_s("%d", &arr[j]); } for (j = 0; j < i / 2; j++) { min[j] = arr[i - j - 1]; } for (j = i/2; j < i; j++) { min[j] = arr[i - j - 1]; } printf("배열을 뒤집으면! \n"); for (j = 0; j < i ; j++) { printf("%d \n", min[j]); } return 0; }
#include <stdio.h> #include <stdlib.h> int** matrix_mul(int **s, int **t, int N); int main(int argc, char** argv) { int A[3][3] = { { 1, 1, 2 }, { 1, 0, 1 }, { 0, 3, 0 } }; int B[3][3] = { { 2, 1, 3 }, { 1, 3, 2 }, { 1, 2, 0 } }; int *parr_A[3] = { A[0], A[1], A[2] }; int *parr_B[3] = { B[0], B[1], B[2] }; int **AB = (void*)0; int i, j, N = 3; printf("A : \n"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%d ", A[i][j]); } printf("\n"); } printf("B : \n"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%d ", B[i][j]); } printf("\n"); } AB = matrix_mul(parr_A, parr_B, N); if (AB) { printf("A x B : \n"); for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { printf("%d ", AB[i][j]); } printf("\n"); } } return 0; } int** matrix_mul(int **s, int **t, int N) { int** re = (int**)malloc(sizeof(int*)*N); int i,j,k,o; for (i = 0; i < N; i++) { re[i] = (int*)malloc(sizeof(int)*N); } for (j = 0; j < N; j++) { for (k = 0; k < N; k++) { re[j][k] = 0; for (o = 0; o < N; o++) { re[j][k] += s[j][o] * t[o][k]; } } } return re; }