C언어(9)
-
C언어 요점 정리 - 정렬(선택정렬)
이번에는 반복 알고리즘을 이용하는 선택 정렬 알고리즘을 알아보도록 하겠습니다. 선택 정렬 알고리즘은 제일 큰 값을 찾아 맨 뒤의 요소와 교체하는 방법을 반복하여 전체를 정렬하는 알고리즘입니다. 물론 제일 작은 값을 찾아 맨 앞의 요소와 교체하는 방법을 반복할 수도 있습니다. 선택 정렬 알고리즘을 의사코드(pseudo code: 논리적인 수행 흐름을 이해할 수 있게 작성한 코드)는 다음과 같습니다. 선택 정렬(base:컬렉션,n:원소 개수,compare:비교 논리) 반복(i:=n; i>1 ; i:= i-1) 반복(max=0,j:=1; j
2022.11.13 -
C언어 요점정리 - 정렬(버블 정렬)
이번에는 반복적인 방법으로 해결하는 버블 정렬 알고리즘을 살펴보도록 하겠습니다. 정렬 알고리즘은 배열의 자료를 원하는 순으로 배치하는 것을 말합니다. 이를 위해 입력 인자로 정렬할 자료들이 있는 배열의 시작 주소와 원소 개수, 비교 알고리즘을 전달합니다. 그리고 수행 후에는 배열 내의 자료들이 원하는 순서로 보관한 상태여야 합니다. 이 중에 버블 정렬은 앞에서부터 이웃하는 원소의 값을 비교하여 위치를 교환하는 것을 반복합니다. 이를 끝까지 수행하면 제일 큰 값이 맨 뒤에 위치합니다. 그리고 정렬할 개수를 1 줄인 후에 다시 반복합니다. 정렬할 원소의 개수가 1이면 모든 작업을 완료합니다. 버블 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=n; i>1 ; i:=..
2022.11.13 -
C언어 요점 정리 - 정렬(순차정렬)
반복적인 방법으로 해결하는 순차 정렬(Sequential Sort) 알고리즘을 살펴보겠습니다. 정렬 알고리즘은 배열의 자료를 원하는 순으로 배치하는 알고리즘을 말하며, 정렬 알고리즘은 입력 인자로 정렬할 자료들이 있는 배열의 시작 주소와 원소 개수, 비교 알고리즘이 필요합니다. 그리고 수행 후에는 배열 내의 자료들은 원하는 순서로 배치한 상태여야 합니다. 순차 정렬은 맨 앞에서부터 제일 작은 원소를 배치하게 만들어 나가는 알고리즘입니다. 이를 위해 배치할 자리에 있는 원소를 뒤쪽에 있는 원소들과 비교하면서 작은 것을 발견하면 배치할 위치의 원소와 교환하는 방식입니다. 순차 정렬(base:배열의 시작 주소, n: 원소 개수, compare:비교 논리) 반복(i:=0->n) 반복(j:=i+1->n) 조건(c..
2022.11.13 -
정보처리기사 - C언어 문제
정답은 하얀색 글씨 처리해놨기 때문에 스크롤하시면 보입니다. 문제1) #include #define SIZE 5 int main(void){ int arr[SIZE] = {75, 100, 95, 50, 85}; int i, j, temp; for(i = 1; i arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } for(i = 0; i < SIZE; i++){ printf("%d", arr[i]); } } 정답1) 50 75 85 95 100 문제2) #include int main(void) { int i = 3, k = 1; swit..
2022.03.18 -
C언어 요점 정리 - 정적할당 동적할당 비교
- 컴파일 타임이란 무엇인가? : 컴파일이 진행되는 하는 과정(시간) - 런타임이란 무엇인가? : 프로세스가 작동되는 시간, 실행 중 - `int arr[20];` 방식과 `int *arr = malloc(sizeof(int) * 5);` 방식에서 서로에 대한 장단점을 써주세요. - `int arr[20]` 장점 : 메모리 자동할당, 메모리 자동반납, 사용하기 편하다. - `int arr[20]` 단점 : 메모리의 크기가 런타임이 아닌, 컴파일 타임에 미리 결정되어야 한다. 즉 유연함이 없다. 크기를 사용자가 아닌 개발자가 임의로 정해야 한다. - `int *arr = malloc(sizeof(int) * 5)` 장점 : 메모리의 크기를 컴파일 타임이 아닌, 런타임에 결정할 수 있다. 즉 메모리의 크기를..
2022.01.20 -
C언어 요점 정리 - 구조체
#include // 컴퓨터한테 사람 데이터를 저장하고 사용하는 방법을 알려주면 된다. // 구조체 정의 struct Person { int age; char* name; char* home; float height; }; int main(void) { // 변수 int a = 10; int b = 20; char c = 20; char* d = "홍길동"; float f = 1.2; // 배열 // 배열 규칙 // 같은 자료형이여야 한다. // 연속되어야 한다. int arr[5] = {1,2,3,4,5}; // int arr[5] = {1, 2, 3.4, "aa", 5}; 이런건 안됨 // 사람 - 이름, 나이, 고향, 키 // 사람을 이루는 데이터가 다양함. // int hong[5] = {30, ..
2022.01.19