C C++166 [C++] C++ 스타일 입출력 (입력, 출력, 문자열 입력) C언어 입출력은 C++에서도 컴파일이 가능합니다. C++ 스타일의 입출력은 어떻게 구성이 되어 있는 지 살펴보도록 하겠습니다. C와 C++ 입출력 차이점 C++ 출력에 대해 아래와 같은 예시로 시작하겠습니다. 우선 std::cout 2022. 7. 6. C언어 char형과 char*형 차이, %s, %c의 차이 오늘은 알고리즘 문제를 풀다 보니 char형과 char*형, %s와 %c 서식 차이에 대해 깊게 알 필요가 있어 아래와 같이 정리하려고 한다. char형과 char*형 차이 char형은 문자로 하나의 문자를 담을 수 있다. 다만 char a[10];과 같이 배열로 선언할 수 있다. char*형은 포인터를 통해 문자열을 가리킬 수 있다. char*형은 예를 들어 char* a = "Hello World"라고 선언하는 경우, 메모리에 저장된 Hello World의 첫 'H'가 담긴 첫 주소값을 가리키고 있게 된다. %s와 %c의 차이 %s: char* 형을 필요로 한다. 즉, 문자열 포인터가 입력으로 들어가야 한다. 출력할 때는 지정된 주소부터 \0(NULL)이 나올 때까지 출력한다. %c: char형을 필.. 2022. 7. 3. 계수 정렬(카운팅 정렬) 개념, 분석, 활용 계수 정렬(카운팅 정렬)이란? 계수 정렬은 특정 범위에 있는 값을 정렬하는 정렬 기법입니다. 각 값의 개수를 셉니다. 계수 정렬은 복잡도가 굉장히 낮습니다. 시간 복잡도는 무려 O(n+k). (n: 나열된 요소 개수 e.g. 5개, k: 입력의 범위 [가장 큰 요소 - 가장 작은 요소]) 공간 복잡도도 무려 O(K)가 됩니다. 아주 빠른 배열임에도 불구하고 음수인 요소에 대해서는 정렬할 수 없다는 단점이 있습니다. 음수 인덱스는 없기 때문입니다. 계수 정렬 예시를 통한 이해 아래 예시로 한번에 이해하도록 해 보겠습니다. 1) 1 3 2 4 5 1 1를 나열해야 합니다. 2) 우리는 나열된 숫자의 범위가 1~5 안에 있다는 것을 알고 있습니다. 3) 배열을 선언합니다. int arr[5];로 선언합니다. .. 2022. 7. 2. C언어 백준 10989번 수 정렬하기 3 문제 풀이 카운팅 정렬(계수 정렬)을 통해 풀어야 한다. 해당 정렬에 대한 설명은 아래에 있다. 계수 정렬(카운팅 정렬) 개념, 분석, 활용 (tistory.com) 처음 퀵 정렬인 qsort를 통해 문제를 풀어 보니 메모리 초과가 발생하였다. 메모리 제한은 8 MB인데, int arr[10000100] 등으로 선언을 하게 되면, 4Byte * 10000100 = 40000400 Byte = 40000KByte = 40 MB가 된다. 소스코드 #include #include #include #define maxvalue 10001 int count[maxvalue]={}; int main(void) { int N=0; int num=0; scanf("%d", &N); for (int i = 0; i 2022. 7. 2. 이전 1 ··· 12 13 14 15 16 17 18 ··· 42 다음