목록Algorithm/Contents (4)
자이의 프로그래밍
스코프(scope): 변수는 선언된 블록 내에서만 접근할 수 있다. 함수간 작업의 완벽한 분담을 위해서 존재한다. 서로에게 영향을 받으면 각각의 함수에 집중할 수 없다. 포인터(Pointer)의 개념과 예제: 값을 저장하는 것이 아닌, 값의 위치를 저장하는 변수 컴퓨터 내부 중에서도 저장장치(메모리)에 관한 것 int *myPointer; //int형 변수의 주소를 저장한다. int a; a=5; myPointer=&a;//a의 주소 cout 함수를 호출할 때 값만 복사해서 호출 변수 자체를 넘기는 것이 아니라 값만 복사해서 옮기는 것이다. 값을 넘기는 장점과 단점 장점: 서로 관여하지 않는 완벽한 분업을 할 수 있다. 단점: 서로 관여하지 않기 때문에 굉장히 불편할 때가 많다. 개선할 수 있는 방법 *..
문자열: 문자만으로 이루어진 배열이다. 문자열과 관련된 함수 * strlen(x): x의 길이를 반환한다. * strcmp(A,B): A와 B가 같은지 판단한다. * strcpy(A,B): B를 A에 복사한다. strlen(x): 문자열 x의 길이를 반환한다. 사용하기 위해서는 #include 라는 헤더파일을 사용해야 한다. \0(null)을 찾아주는 함수이다. 띄어쓰기 이전까지 입력받는다. strcmp(A,B): 두 문자열이 같은지를 비교하는 함수이다. 두 문자열이 같으려면 1. 길이가 같아야 하며, 2. 위치별 문자가 같아야 한다. 0이 반환될 경우, 두 문자열 A와 B가 같다는 의미이다. 음수가 반환될 경우, A가 B보다 사전순으로 더 앞선다는 의미이다. 양수가 반환될 경우, B가 A보다 사전순으로..
시간복잡도의 개념은 문제를 효율적으로 해결하는것에 있다. 똑같은 문제를 해결하더라도 빠르게 해결하는 것이 더 중요하다. 같은 입력을 제공했을 때, 어느 프로그램이 더 빠른지 알 수 있는 방법은 제한시간을 두는 것이다. 예제를 보자. int main(){ int a, b, c; cin>>b>>c; a=b+c; coutn; for(int i=0; i
정렬의 개념: 특정 기준을 적용하여 나열함 3 4 1 2 (오름차순)-> 1 2 3 4 (내림차순)-> 4 3 2 1 정렬의 종류: 선택정렬, 삽입정렬, 버블정렬 선택정렬: 최솟값을 앞으로 이동시킴 (기준: 오름차순) 14 4 8 23 11 5 3 2 4 9 위와 같은 숫자들을 정렬해야 한다고 할때, 선택정렬은 정렬되지 않은 부분에서의 최솟값을 찾아 자리를 바꿔준다. 위 배열에서는 2가 최솟값이고 아직 정렬이 되어있는 부분이 하나도 없으므로 2와 14를 바꿔준다. 2 4 8 23 11 5 3 14 4 9 그렇다면 위 배열의 2까지는 정렬이 완료된 것이다. 노란색 배경은 이 곳까지 정렬이 완료되었다는 의미로 사용했다. 한번 더 진행을 하게 된다면 다음과 같은 형태가 나온다. 2 3 8 23 11 5 4 1..