본문 바로가기

C C++166

C언어 백준 11004번 K번째 수 문제 풀이 1) 배열을 통해 N개의 숫자를 입력 받는다. 2) qsort 함수를 이용하여 정렬한다. 3) 입력받은 숫자 중 배열에서 K번째 수를 출력한다. 소스코드 #include #include #include int arr[5000010]={}; int N; int K; int compare(const void* a, const void* b) { int A = *(int*)a; int B = *(int*)b; if (AB) return 1; return 0; } int main(void) { scanf("%d %d", &N, &K); for (int i=0; i 2022. 7. 10.
[C/C++] 소문자-대문자 변환, 대문자-소문자 변환 알고리즘 문제 시 특히 소문자를 대문자로 변경 또는 대문자를 소문자로 변경하는 문제가 나오게 됩니다. 이 때 어떤 식으로 변경하면 손쉽게 변경할 수 있는 지 알아보겠습니다. 크게 3가지입니다. 단순 덧셈뺄셈연산, 비트 연산자 사용, 마지막으로 toupper() 함수와 tolower() 함수 사용입니다. 덧셈뺄셈 연산으로 소문자 대문자 변환하기 소문자가 대문자보다 32 큽니다. 둘 다 ASCII 코드입니다. 소문자 a와 z는 정수로 각각 97과 122를 가지고 있습니다. 대문자 A와 Z는 정수로 각각 65과 97을 가지고 있습니다. 적절히 32를 빼거나 더해줌으로써 소문자 대문자 변환을 할 수 있습니다. 아래는 입력된 "HeLLo"를 모두 소문자로 변경하는 코드입니다. 대문자 범위는 65~90이며, 소문자.. 2022. 7. 10.
[C/C++] 동적 메모리 할당 (malloc 함수, calloc 함수, realloc 함수) 앞 서 알아 본 메모리 구조에서 사용자가 원하는 시점에 할당하고 소멸시킬 수 있는 메모리는 힙 영역에 할당이 된다고 언급하였습니다. 그렇다면 사용자가 원하시는 시점에 할당과 소멸을 어떻게 할 수 있을까요? 통상 C에서는 malloc, calloc, realloc 함수로 할당하며, C++에서도 사용 가능합니다. 동적 메모리 할당 (malloc 예시) 동적 메모리 할당은 힙에 메모리를 할당하며, 유저가 원하는 시점에 생성과 소멸 시킬 수 있습니다. mlloc 함수와 free함수를 통해 생성과 소멸이 가능합니다. 동적 메모리 할당의 가장 큰 목적은 메모리 공간을 지정한대로 사용할 수 있다는 점입니다. 아래 문제점을 먼저 보겠습니다. #include #include int* num() { int num_valu.. 2022. 7. 9.
[C/C++] 입력 받은 숫자 특정 자릿수 접근하기 숫자를 입력받았을 때 특정 자릿수를 가져올 수 있는 방법에 대해 공유하겠습니다. 입력 받은 숫자 특정 자릿수만 가져오기 - char arr[10] 등 문자열 배열을 선언한다. - 입력된 숫자를 문자열로 받는다. - 각 자릿수를 합쳐 숫자로 변환한다. 입력 받은 숫자 특정 자릿수만 가져오는 소스 코드를 보겠습니다. #include int main() { char arr[4]; int number; scanf("%s", arr); number = 10*(arr[0]-'0')+1*(arr[1]-'0'); printf("%d",number); return 0; } for문을 통해 각 배열 요소에 숫자가 담았습니다. 1234인 경우 arr[0] ~ arr[3]까지 각 요소에 1,2,3,4가 담깁니다. 문자로 담깁.. 2022. 7. 9.