More actions
No edit summary |
(Repair batch-0006 pages from live compare) |
||
| Line 10: | Line 10: | ||
#include <stdlib.h> | #include <stdlib.h> | ||
int main(int argc, char* argv | int main(int argc, char* argv[]) { | ||
int n, i, j, minj, temp; | int n, i, j, minj, temp; | ||
int *arr; | int *arr; | ||
| Line 22: | Line 22: | ||
for(j=i+1; j<n; j++) { | for(j=i+1; j<n; j++) { | ||
if(arr | if(arr[j] < arr[minj]) { | ||
minj = j; | minj = j; | ||
} | } | ||
} | } | ||
temp = arr | temp = arr[minj]; | ||
arr | arr[minj] = arr[i]; | ||
arr | arr[i] = temp; | ||
printf("%d\n", arr | printf("%d\n", arr[i]); | ||
} | } | ||
| Line 51: | Line 51: | ||
} | } | ||
int main(int argc, char* argv | int main(int argc, char* argv[]) { | ||
int n1, n2, i; | int n1, n2, i; | ||
int *arr1, *arr2; | int *arr1, *arr2; | ||
| Line 60: | Line 60: | ||
arr1 = (int *)malloc(sizeof(int) * n1); | arr1 = (int *)malloc(sizeof(int) * n1); | ||
for(i=0; i<n1; i++) scanf("%d", &arr1 | for(i=0; i<n1; i++) scanf("%d", &arr1[i]); | ||
// 정렬 | // 정렬 | ||
| Line 68: | Line 68: | ||
arr2 = (int *)malloc(sizeof(int) * n2); | arr2 = (int *)malloc(sizeof(int) * n2); | ||
for(i=0; i<n2; i++) scanf("%d", &arr2 | for(i=0; i<n2; i++) scanf("%d", &arr2[i]); | ||
// 서치 | // 서치 | ||
for(i=0; i<n2; i++) { | for(i=0; i<n2; i++) { | ||
printf("%d\n", B_S(arr1, n1, arr2 | printf("%d\n", B_S(arr1, n1, arr2[i])); | ||
} | } | ||
return 0; | return 0; | ||
| Line 85: | Line 85: | ||
m = (s+e)/2; | m = (s+e)/2; | ||
if(arr | if(arr[m] > solution) e = m - 1; | ||
else if(arr | else if(arr[m] < solution) s = m + 1; | ||
else return 1; | else return 1; | ||
} | } | ||
| Line 99: | Line 99: | ||
int main() { | int main() { | ||
int N; | int N; | ||
int A | int A[2000]; | ||
scanf("%d", &N); | scanf("%d", &N); | ||
for (int i = 0; i < N; i++) { | for (int i = 0; i < N; i++) { | ||
scanf("%d", &A | scanf("%d", &A[i]); | ||
} | } | ||
for (int i = 0; i < N; i++) { | for (int i = 0; i < N; i++) { | ||
for (int j = i; j < N; j++) { | for (int j = i; j < N; j++) { | ||
if (A | if (A[i] > A[j]) { | ||
int tmp = A | int tmp = A[i]; | ||
A | A[i] = A[j]; | ||
A | A[j] = tmp; | ||
} | } | ||
} | } | ||
} | } | ||
for (int i = 0; i < N; i++) { | for (int i = 0; i < N; i++) { | ||
printf("%d\n", A | printf("%d\n", A[i]); | ||
} | } | ||
return 0; | return 0; | ||
| Line 123: | Line 123: | ||
#include <stdlib.h> | #include <stdlib.h> | ||
int A | int A[100001]; | ||
int N; | int N; | ||
int compare(void *first, void* second){ | int compare(void *first, void* second){ | ||
| Line 134: | Line 134: | ||
int m = (s+e)/2; | int m = (s+e)/2; | ||
if(s>e) return 0; | if(s>e) return 0; | ||
if(A | if(A[m]==search) return 1; | ||
else if(A | else if(A[m]>search) return B_S(s,m-1,search); | ||
else return B_S(m+1, e, search); | else return B_S(m+1, e, search); | ||
} | } | ||
| Line 143: | Line 143: | ||
scanf("%d", &N); | scanf("%d", &N); | ||
for(i=0;i<N;i++) { | for(i=0;i<N;i++) { | ||
scanf("%d",&A | scanf("%d",&A[i]); | ||
} | } | ||
qsort(A, N, sizeof(int), compare); | qsort(A, N, sizeof(int), compare); | ||
| Line 160: | Line 160: | ||
== 수 찾기 == | == 수 찾기 == | ||
(코드는 여기에) | (코드는 여기에) | ||
Latest revision as of 01:08, 27 March 2026
오늘의 실습 내용
신원준
수 정렬하기
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int n, i, j, minj, temp;
int *arr;
scanf("%d", &n);
arr = (int *)malloc(sizeof(int) * n);
for(i=0; i<n; i++) scanf("%d", arr + i);
for(i=0; i<n; i++) {
minj = i;
for(j=i+1; j<n; j++) {
if(arr[j] < arr[minj]) {
minj = j;
}
}
temp = arr[minj];
arr[minj] = arr[i];
arr[i] = temp;
printf("%d\n", arr[i]);
}
return 0;
}
수 찾기
#include <stdio.h>
#include <stdlib.h>
// 오름차순 정렬
int compare (const void *first, const void *second)
{
if (*(int*)first > *(int*)second)
return 1;
else if (*(int*)first < *(int*)second)
return -1;
else
return 0;
}
int main(int argc, char* argv[]) {
int n1, n2, i;
int *arr1, *arr2;
int B_S(int *arr, int size, int solution);
scanf("%d", &n1);
arr1 = (int *)malloc(sizeof(int) * n1);
for(i=0; i<n1; i++) scanf("%d", &arr1[i]);
// 정렬
qsort(arr1, n1, sizeof(int), compare);
scanf("%d", &n2);
arr2 = (int *)malloc(sizeof(int) * n2);
for(i=0; i<n2; i++) scanf("%d", &arr2[i]);
// 서치
for(i=0; i<n2; i++) {
printf("%d\n", B_S(arr1, n1, arr2[i]));
}
return 0;
}
// 바이너리 서치
int B_S(int *arr, int size, int solution) {
int s=0, e=size-1;
int m;
while(s <= e) {
m = (s+e)/2;
if(arr[m] > solution) e = m - 1;
else if(arr[m] < solution) s = m + 1;
else return 1;
}
return 0;
}
이민욱
수 정렬하기
#include <stdio.h>
int main() {
int N;
int A[2000];
scanf("%d", &N);
for (int i = 0; i < N; i++) {
scanf("%d", &A[i]);
}
for (int i = 0; i < N; i++) {
for (int j = i; j < N; j++) {
if (A[i] > A[j]) {
int tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
}
}
for (int i = 0; i < N; i++) {
printf("%d\n", A[i]);
}
return 0;
}
수 찾기
#include <stdio.h>
#include <stdlib.h>
int A[100001];
int N;
int compare(void *first, void* second){
if(*(int*)first> *(int*)second) return 1;
else if(*(int*)first<*(int*)second) return -1;
return 0;
}
int B_S(int s, int e, int search){
int m = (s+e)/2;
if(s>e) return 0;
if(A[m]==search) return 1;
else if(A[m]>search) return B_S(s,m-1,search);
else return B_S(m+1, e, search);
}
int main() {
int i, j, min_idx, tmp, T, search;
scanf("%d", &N);
for(i=0;i<N;i++) {
scanf("%d",&A[i]);
}
qsort(A, N, sizeof(int), compare);
scanf("%d", &T);
for(i=0;i<T;i++){
scanf("%d", &search);
printf("%d\n", B_S(0, N-1, search));
}
return 0;
}
정석우
수 정렬하기
(코드는 여기에)
수 찾기
(코드는 여기에)