블로그
-
C++ 정렬·검색 완벽 가이드 | 퀵소트·병합정렬·이진탐색·STL [실전]
정렬(퀵소트, 병합정렬, 기수정렬)과 검색(이진탐색, lower_bound, upper_bound)을 C++로 구현. 문제 시나리오, 완전한 코드, 흔한 실수, 성능 팁, 프로덕션 패턴.
-
C++ 비트 연산 완벽 가이드 | 비트마스크 DP·XOR·해밍 거리·비트셋 [실전]
C++ 비트 연산 활용: 비트마스크 DP, XOR 트릭, 비트 카운팅, 해밍 거리, std::bitset. 문제 시나리오, 완전한 예제, 흔한 실수, 성능 팁, 프로덕션 패턴. 부분집합을 나열하거나, 상태를 압축해 DP로 풀어야 할 때 배열·벡터로 상태를 관리하면 메모리와 시간이 폭발합니다. 비유하면 "30개 원소의 부분집합을 벡터로 저장하는 것"과 "30비트 정수 하나로 표현하는 것"의 차이입니다.
-
C++ 탐욕 알고리즘 완벽 가이드 | 활동 선택·분수 배낭·허프만 코딩·구간 스케줄링 [실전]
C++ 탐욕법(Greedy) 마스터: 활동 선택, 분수 배낭, 허프만 코딩, 구간 스케줄링. 문제 시나리오, 완전한 예제, 흔한 실수, 베스트 프랙티스, 프로덕션 패턴. 탐욕 알고리즘(Greedy)은 매 단계에서 지역적으로 최선의 선택을 해서 전체 최적해를 얻는 기법입니다. 비유하면 "매 순간 가장 비싼 물건을 고르는 것"이 항상 최선은 아니지만, "가장 빨리 끝나는 활동부터 고르는 것"은 최적해를 보장합니다.
-
C++ 분할정복 완벽 가이드 | 병합정렬·퀵소트·이진탐색·클로스페어·Strassen [실전]
C++ 분할정복(Divide and Conquer) 패턴: 병합정렬, 퀵소트, 이진탐색, 클로스페어, Strassen 행렬 곱셈. 문제 시나리오, 완전한 예제, 흔한 실수, 베스트 프랙티스, 프로덕션 패턴.
-
C++ 탐욕 알고리즘 완벽 가이드 | 활동 선택·배낭·스케줄링·증명 기법 [실전]
C++ 탐욕법(Greedy) 마스터: 활동 선택, 분수 배낭, 거스름돈, 작업 스케줄링, 허프만 코딩. 문제 시나리오, 완전한 예제, 흔한 실수, 증명 기법, 프로덕션 패턴. 탐욕 알고리즘(Greedy)은 매 단계에서 지역적으로 최선의 선택을 해서 전체 최적해를 얻는 기법입니다. 비유하면 "매 순간 가장 비싼 물건을 고르는 것"이 항상 최선은 아니지만, "가장 빨리 끝나는 활동부터 고르는 것"은 최적해를 보장합니다.
-
C++ 수학 알고리즘 완벽 가이드 | GCD·LCM·소수·모듈러·행렬·FFT [실전]
C++ 수학 알고리즘: 에라토스테네스 체, 유클리드 알고리즘, 모듈러 거듭제곱, 행렬 연산, FFT. 문제 시나리오, 완전한 예제, 흔한 실수, 성능 팁, 프로덕션 패턴. 분수를 기약분수로 만들거나, 큰 수의 거듭제곱을 모듈러 연산으로 구할 때 단순 곱셈·나눗셈만 쓰면 오버플로우와 정밀도 문제에 빠집니다. 비유하면 "a×b를 먼저 계산한 뒤 mod를 취하는 것"과 "중간 결과마다 mod를 취하는 것"의 차이입니다.
-
C++ 알고리즘 최적화 | 시간복잡도·공간복잡도·트레이드오프 [#54-10]
C++ 알고리즘 최적화: Big-O 분석, 공간-시간 트레이드오프, 실전 최적화 기법. 문제 시나리오, 완전한 예제, 흔한 에러, 성능 팁, 프로덕션 패턴. 100만 건의 로그를 처리할 때 O(n²) 알고리즘을 쓰면 시간 초과가 발생합니다. 반대로 O(n)으로 줄이려다 메모리를 과다 사용해 OOM(Out of Memory)에 빠지기도 합니다. 알고리즘 최적화는 시간복잡도·공간복잡도·트레이드오프를 이해하고,
-
C++ 분할정복 완벽 가이드 | 병합정렬·퀵소트·이진탐색·클로스페어 [실전]
C++ 분할정복(Divide and Conquer) 패턴: 병합정렬, 퀵소트, 이진탐색, Karatsuba 곱셈, 클로스페어. 문제 시나리오, 완전한 예제, 흔한 실수, 성능 팁, 프로덕션 패턴.
-
C++ 플러그인 시스템 완벽 가이드 | dlopen·LoadLibrary·인터페이스·핫 리로드 [실전]
C++ 플러그인 아키텍처: 동적 라이브러리 로딩(dlopen/LoadLibrary), C ABI 인터페이스, 플러그인 매니저, 핫 리로드. 문제 시나리오, 완전한 예제, 흔한 에러, 베스트 프랙티스, 프로덕션 패턴.
-
C++ 리플렉션 구현 | 타입 정보·메타데이터·자동 직렬화 [#55-1]
C++에는 Java나 C#처럼 리플렉션(실행 중에 타입·멤버 정보를 조회하는 기능)이 표준으로 없습니다. 그래서 직렬화, ORM, 에디터 프로퍼티 바인딩처럼 "타입 구조를 모르는 상태에서 멤버를 순회"해야 할 때마다 수동 반복 코드를 작성하거나 매크로·코드 생성에 의존하게 됩니다.