복습 : 배열 기초
1.
배열의 인덱스는 0부터 시작한다.
2.
배열을 초기화하지 않으면 쓰레기값이 저장되어 있다.
→ 각 요소를 0으로 초기화해두는 것이 좋다. (ex: for문 순회, “{ 0, }” 이용)
// 배열 선언
int scores[10];
// 배열 초기화 (순회)
// [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
for(int i = 0; i < 10; i++){
	scores[i] = i * 10;
}
C
복사
최솟값 찾기
int arr[10]; // 배열 선언
// 입력 : 5 2 1 3 7 6 9 8 4 10
for (int i = 0; i < 10; i++) {
	scanf("%d", &arr[i]);
}
int min = arr[0]; // 배열의 맨 처음 요소(0번째)가 최솟값이라고 가정
// 배열의 0번째 요소를 제외하고, 1번째 요소부터 min과 비교를 함
for (int i = 1; i < 10; i++) {
	if (arr[i] < min) { // 현재 인덱스의 요소가 min보다 작다면
		min = arr[i]; // 현재 인덱스의 요소를 min으로 지정함
	}
}
printf("%d\n", min); // 출력 : 1
C
복사
비교할 숫자를 10개가 아닌, 사용자 입력에 따라 다르게 받을 수 없을까?
•
가정 : 숫자는 최대 100개까지 입력받을 수 있다.
int arr[100]; // 배열 선언 (받을 수 있는 최대 크기로 선언해둠)
int testcase; // 몇 개의 숫자를 받을까?
scanf("%d", &testcase);
// testcase의 수만큼 숫자를 입력받아서 배열에 저장한다.
for (int i = 0; i < testcase; i++) {
	scanf("%d", &arr[i]);
}
int min = arr[0]; // 배열의 맨 처음 요소(0번째)가 최솟값이라고 가정
// 배열의 0번째 요소를 제외하고, 1번째 요소부터 min과 비교를 함
// testcase의 수만큼만 배열을 순회한다.
for (int i = 1; i < testcase; i++) {
	if (arr[i] < min) { // 현재 인덱스의 요소가 min보다 작다면
		min = arr[i]; // 현재 인덱스의 요소를 min으로 지정함
	}
}
printf("%d\n", min);
C
복사
문제 (1)
•
2021년 1학기 기말고사 C 최대값 최소값 찾기
•
백준 2462 최댓값 (배열 인덱스 접근)
정렬
버블정렬
•
변수 swap
int a = 1;
int b = 7;
int tmp = a;
a = b;
b = tmp;
C
복사
tmp  | 1  | 
a  | 1  | 
b  | 7  | 
tmp  | 1  | 
a  | 7  | 
b  | 7  | 
tmp  | 1  | 
a  | 7  | 
b  | 1  | 
•
버블 정렬 알고리즘
int arr[5] = { 5,2,1,3,4 };
// 정렬 전 배열
for (int i = 0; i < 5; i++) {
	printf("%d ", arr[i]);
}
printf("\n");
for (int i = 0; i < 5; i++) {
	for (int j = 0; j < 4; j++) {
		if (arr[j] > arr[j + 1]) {
			int tmp = arr[j];
			arr[j] = arr[j + 1];
			arr[j + 1] = tmp;
		}
	}
}
// 정렬 후 배열
for (int i = 0; i < 5; i++) {
	printf("%d ", arr[i]);
}
C
복사
i  | j  | arr  | 
0  | 0  | 5 2 1 3 4 → 2 5 1 3 4  | 
1  | 2 5 1 3 4 → 2 1 5 3 4  | |
2  | 2 1 5 3 4 → 2 1 3 5 4  | |
3  | 2 1 3 5 4 → 2 1 3 4 5  | 
i  | j  | arr  | 
1  | 0  | 2 1 3 4 5 → 1 2 3 4 5  | 
1  | 1 2 3 4 5 → 1 2 3 4 5  | |
2  | (이하 동일)  | |
3  | (이하 동일)  | 
문제 (2)
•
백준 2750 수 정렬하기 (꼭! 버블정렬을 이용해서 풀어봅시다! 함수 사용 금지!)
.jpg&blockId=f78abbf8-9249-4c94-beb1-eecf41f14bec)


