C++ 표준 템플릿 라이브러리(STL) 알고리즘 핵심 정리 및 활용 가이드

1. 비변형 시퀀스 알고리즘 (Non-modifying Sequence Operations) 컨테이너의 원소를 직접 변경하지 않고 탐색하거나 검사하는 알고리즘들입니다. 1.1 탐색 (find 계열) find(first, last, value): 특정 값과 일치하는 첫 번째 원소의 반복자를 반환합니다. find_if(first, last, pred): 조건자(predicate)를 만족하는 첫 번째 원소를 찾습니다. find_end(first1, last1, ...

7월 6일 03:14에 게시됨

배열 정렬 및 분할 알고리즘

주어진 문제는 배열을 원위치에서 정렬하는 것으로, 각각의 색상(0, 1, 2)을 순서대로 나열해야 합니다. 이를 위해 삼지분할법(Tripartite Partitioning)을 사용합니다. 다음은 구현 예시입니다: class Solution { public: void sortColors(vector<int>& nums) { int n = nums.size(); int left = -1, right = n; for (int i = 0; i ...

6월 27일 20:41에 게시됨

수론 기초: 정합, 최대공약수 및 최소공배수 알고리즘 분석

정수론과 나눇셈 (Divisibility) 수학, 특히 수론에서 정수 $a$가 정수 $d$로 나누어 떨어질 때, 이를 '$a$는 $d$에 의해 정수배수 관계에 있다'고 표현하며, 기호로는 $d | a$로 표기합니다. 이는 나머지 없이 정확히 나뉘어진다는 뜻입니다. 나누떨어짐의 기본 속성들은 다음과 같습니다: 만약 $d | a$이면, 임의의 정수 $k$에 대하여 $d | ka$가 성립합니다. 만약 $d ...

6월 8일 22:44에 게시됨

C 언어 포인터와 배열 활용 실습

1. 포인터를 이용한 배열 값 탐색 배열 내 최댓값과 최솟값을 찾는 과정에서 포인터를 활용하면 함수 호출 시 여러 값을 동시에 반환하는 효과를 낼 수 있습니다. #include <stdio.h> void calculate_range(int arr[], int size, int *min_ptr, int *max_ptr) { *min_ptr = *max_ptr = arr[0]; for (int i = 1; i < size; ++i) { if (arr[i] &lt ...

6월 6일 18:54에 게시됨

C 언어를 활용한 기본 알고리즘 및 함수 구현

이 문서에서는 C 언어를 사용하여 여러 가지 일반적인 프로그래밍 문제에 대한 해결책을 탐구합니다. 점수 등급 변환, 숫자의 자릿수 합 계산, 거듭제곱 연산, 삼각형 분류, 조합 계산, 최대공약수(GCD) 찾기, 그리고 특정 문자 패턴 출력과 같은 다양한 시나리오를 다루며, 각 문제에 대한 함수 구현과 로직을 분석합니다. 1. 점수 등급 변환 주어진 점수를 기준으로 학 ...

6월 1일 20:14에 게시됨

C++ STL 알고리즘 종합 가이드

1. 비변경 시퀀스 알고리즘 이 알고리즘들은 대상 컨테이너의 요소들을 수정하지 않고 동작합니다. 1.1 검색 관련 함수 find(start, end, target): 특정 값과 일치하는 첫 번째 요소를 찾습니다. find_if(start, end, condition): 조건을 만족하는 첫 번째 요소를 탐색합니다. find_end(start, end, pattern_start, pattern_end): 하위 시퀀스가 마지막으로 나타나는 위치 ...

5월 30일 17:57에 게시됨

C++ 표준 템플릿 라이브러리(STL) 핵심 알고리즘 가이드

1. 비수정 시퀀스 알고리즘 컨테이너의 데이터를 변경하지 않고 탐색이나 비교 작업을 수행하는 알고리즘입니다. find, find_if, find_end find: 특정 값과 일치하는 첫 번째 요소를 찾습니다. find_if: 조건(서술자)을 만족하는 첫 번째 요소를 찾습니다. find_end: 대상 범위 내에서 특정 서브 시퀀스가 마지막으로 나타나는 위치를 반환합니다. vector&l ...

5월 26일 23:29에 게시됨