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에 게시됨

2025년 2월 4일~9일 주차 문제 정리

주간 개요 이번 주는 생활 리듬이 불규칙하여 학습 효율이 저하되었고, 이를 개선하기 위해 환경을 변경하였다. 새로운 일정으로 인해 다음 주부터는 더 체계적인 학습과 경기 준비를 할 계획이다. 문제 해결 기록 SMU Winter 2025 Round 6 B. 스트리머의 밤 문제 요약: 여러 프로그램의 시작 및 종료 시간이 주어질 때, 전체 시간 내에 볼 수 있는 최대 프로그램 수를 ...

7월 1일 05:37에 게시됨

C++ 연관 컨테이너 std::set과 std::map의 활용

std::set: 유일한 요소의 정렬된 집합 std::set은 중복을 허용하지 않는 키(Key)들의 집합을 관리하는 컨테이너입니다. 내부적으로 주로 레드-블랙 트리(Red-Black Tree) 구조로 구현되어 있어, 삽입, 삭제, 탐색 작업 시 O(log N)의 시간 복잡도를 보장합니다. 만약 중복된 값을 허용해야 한다면 std::multiset을 대신 사용하면 됩니다. 주요 제어 메서드 ...

6월 27일 05:56에 게시됨

C++에서의 STL 알고리즘 활용과 핵심 패턴

비수정형 시퀀스 알고리즘 이러한 알고리즘은 컨테이너 내 요소를 변경하지 않고 조작합니다. 주로 탐색, 카운팅, 조건 검사에 사용됩니다. 요소 탐색: find 계열 함수 std::find: 지정된 값과 일치하는 첫 번째 요소를 반환합니다. std::find_if: 조건을 만족하는 첫 번째 요소를 찾습니다. std::find_end: 특정 하위 시퀀스가 마지막으로 나타나는 위치를 반환합 ...

6월 24일 20:32에 게시됨

C++ 표준 라이브러리(STL) 알고리즘 활용 가이드

1. 비수정(Non-modifying) 시퀀스 알고리즘 이 범주의 알고리즘은 대상 컨테이너의 요소 값을 변경하지 않으면서 정보를 검색합니다. 1.1 요소 찾기: find, find_if, find_end find(begin, end, value): 주어진 범위에서 특정 값과 일치하는 첫 번째 요소를 찾아 해당 위치의 이터레이터를 반환합니다. 찾지 못하면 end 이터레이터를 반환합니다. find_if(begin, ...

6월 24일 17:29에 게시됨

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

1. 비수정 시퀀스 알고리즘 이 알고리즘들은 작업하는 컨테이너의 요소를 변경하지 않습니다. 1.1 find와 find_if find(begin, end, value): value와 같은 첫 번째 요소를 찾아 반복자를 반환합니다. (찾지 못하면 end 반환) find_if(begin, end, predicate): 조건자(predicate)를 만족하는 첫 번째 요소를 찾습니다. find_end(begin, end, sub_begin, sub_e ...

6월 21일 02:44에 게시됨

임베디드 C++ 알고리즘 완벽 가이드

1. 수정되지 않는 시퀀스 알고리즘 이러한 알고리즘들은 작업 중인 컨테이너의 요소들을 변경하지 않습니다. 1.1 찾기 알고리즘: find와 find_if find(start, end, value): value와 동일한 첫 번째 요소를 찾아 반복자를 반환 (없으면 end 반환) find_if(start, end, 조건자): 조건을 만족하는 첫 번째 요소를 찾습니다 find_end(start, end, sub_start, sub_end): 부분 ...

6월 19일 01:34에 게시됨

C++ STL 알고리즘 완전 정복

1. 비수정 시퀀스 알고리즘 이 알고리즘들은 컨테이너의 요소를 변경하지 않고 조작합니다. 1.1 find 및 find_if find(begin, end, value): value와 첫 번째로 일치하는 요소를 찾아 반복자를 반환합니다 (찾지 못하면 end 반환). find_if(begin, end, predicate): 조건자를 만족하는 첫 번째 요소를 찾습니다. find_end(begin, end, sub_begin, sub_end): 서브시퀀스 ...

6월 15일 00:03에 게시됨

C++ 핵심 개념 정리: 포인터, STL 컨테이너 및 활용법

C++ 학습 시 자주 사용되는 핵심 개념들을 코드 예제와 함께 정리합니다. 기본 입출력 및 배열 초기화 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N = 110; int d[N]; // 전역 변수 int main() { int n; cin >> n; cout << n * 2 << endl; // memset을 사용한 ...

6월 9일 01:15에 게시됨

Xorshift 기반 난수 배열 생성과 선형 시간 선택 알고리즘 활용

알고리즘 대회에서 자주 등장하는 난수 배열 생성 방식과 std::nth_element를 활용한 효율적인 문제 해결 기법을 살펴본다. 특히 대용량 데이터에서 순위 기반 쿼리를 처리하는 방법이 핵심이다. Xorshift RNG 구현 다음은 경량 의사난수 생성기(Pseudo-Random Number Generator)의 한 종류인 xorshift 계열 구현이다. 세 개의 상태 변수를 이용하며, 비트 연산으로 빠르 ...

6월 8일 21:35에 게시됨