알고리즘 시*련아 (12) 썸네일형 리스트형 C++ 선택정렬 - 정렬1 정렬중에서 가장 간단하고 직관적인 정렬이다 아이디어는 1. 배열중에서 가장 작은 숫자를 선택한다 2. 선택한 숫자와 가장 앞에있는 숫자를 교체한다 int* SelectionSort(int* arr, int size){ int min, index = 0, temp; for(int i=0; i < size; i++){ min = 10000; for(int j=i; j < size; j++){ //~i 까지 정렬이 되어있으므로 i에서 부터 시작 if(arr[j] < min){// 배열의 최소값을 찾는다 min = arr[j]; index = j; } } temp = arr[i];//최솟값과 가장 앞의 값을 교체한다 arr[i] = arr[index]; arr[index] = temp; } return arr;.. C++ 이중배열 이중 배열의 구조적인 모습은 배열을 가르키는 포인터의 배열 이다 int** b = new int*[3]; 스트링 이중배열의 경우 조금 신경쓸것이 있다면 널 문자이다 그렇기 때문에 사용할 문자의 길이 + 1을 해 주어서 null(\0)문자의 자리를 만들어 주어야 한다 char** a = new char*[3+1]; for(int i=0; i C++ 문자열 동적 할당 c++의 string과 getline함수의 느린 동작을 보완하기 위해서 나만의 문자열 동적 할당 함수를 작성하게 되었다 V.1 char* getstring(){ char temp[STRING_SIZE]; fgets(temp, STRING_SIZE, stdin); char* s = new char[strlen(temp)]; strcpy(s, temp); return s; } 1. 임시 배열 temp를 먼저 선언하고 2. fgets를 통해 사용자 입력을 받아 3. 입력의 크기만큼 새롭게 할당한 메모리에 4. 문자열을 붙여넣는다 이 인풋은 정상적으로 실행이 되었지만 한가지 문제가 있었다 바로 개행문자까지 저장이 된다는 것이다 $ asdfasdlkj//인풋 -> asdfasdlkj\n//결과물 그래서 마지막 개.. C++ 입력 정리 1. 변수 입력 std::cin의 경우 int a, b; std::cin >> a; std::cin >> a >> b; //다중 입력 c++ 강의를 들으면 처음으로 배우는 c++국룰 입력 방법이다 하지만 이 방식에는 문제가 있다. 첫번째로 입력의 형태이다 $10//터미널 입력 10\n//실제 입력 터미널에 10을 입력하고 엔터를 누르면 10뒤에 \n까지 입력이 된다 그렇기 때문에 정수를 입력할때 cin은 숫자뒤에 \n을 놔두고 숫자만 입력하게 된다. 문제는 이것을 string이나 char입력을 같이 사용할때 나타난다 숫자는 \n을 입력하지 못하므로 \n을 버리고 입력하는데, \n을 포함할 수 있는 string이나 char을 입력하게되는 경우 그 전에 cin에서 입력하고 버퍼에 남은 \n을 입력하게 된다... 이전 1 2 다음