/
https://42jerrykim.github.io/ _index.md
정수 A를 B로 바꾸는 최소 연산 횟수를 구한다. 연산은 ×2, ÷2(짝수일 때), +1만 가능하다. 최적해는 나눗셈만 → 덧셈만 → 곱셈만 순서임을 이용해 O(log² max(A,B))에 해결한다. USACO 2022 Silver 공식 해설의 관찰을 적용한 C++/Python 정답 코드를 담았다. 평면 위 n개 정사각형에서 각각 한 점씩 골라 직경(최대 쌍 거리)을 최대화하고 D²을 출력한다. 최대 거리는 항상 두 꼭짓점 쌍에서 성립하므로, 4n개 꼭짓점의 볼록 껍질과 회전하는 캘리퍼스·삼분 탐색으로 O(n log n)에 해결한다. 가상 함수, RTTI, 예외 처리의 정량적 비용을 마이크로벤치마크로 측정하고, devirtualization 등으로 비용을 줄이는 방법을 다룹니다. Low-latency C++ 트랙의 핵심 진입 챕터이며, 평가 기준·판단 기준·비판적 시각과 다음 장 링크를 제공합니다. vector, map, unordered_map 등 STL 컨테이너의 비용 모델과 캐시 효율성을 정리합니다. 컨테이너 선택에 따른 메모리 레이아웃·접근 패턴 차이와 마이크로벤치마크로 측정하는 방법을 다루며, 연속 레이아웃과 노드 기반 구조의 트레이드오프를 제시합니다. std::string의 SSO(Small String Optimization), string_view 활용, 문자열 처리 시 불필요한 할당·복사를 줄이는 기법을 다룹니다. 파싱·포맷팅 등 핫패스에서의 문자열 비용을 정량적으로 다루며, API 경계와 내부 버퍼 관리 기준을 정리합니다. Copy Elision, RVO/NRVO, 이동 의미론을 심화하여 객체 수명·복사/이동 비용을 제어하는 방법을 다룹니다. 반환값 최적화와 move semantics가 성능에 미치는 영향을 마이크로벤치마크로 검증하고, 언제 이동을 쓸지·회피할지 판단 기준을 제시합니다. 임시 객체 생성이 발생하는 패턴을 진단하고, 연산자 오버로딩·암시적 변환·연속 연산 등에서 임시를 제거하는 패턴을 다룹니다. 컴파일러 출력과 프로파일링으로 임시 비용을 확인하는 방법을 정리하며, 실무 적용 시 주의점과 대안을 제시합니다. constexpr, consteval을 활용한 컴파일 타임 계산과 템플릿 기반 비용 제어 전략을 다룹니다. 런타임 오버헤드를 컴파일 타임으로 옮기고 인라이닝을 유도하는 패턴을 정리하며, 컴파일 시간·ABI 트레이드오프와 적용 기준을 제시합니다. C++17/20/23의 성능 관련 기능인 ranges, concepts, modules 등을 정리합니다. 새 표준 기능의 비용·이점을 측정하고, Low-latency 코드에서의 활용 기준을 다루며, 컴파일러 지원과 마이그레이션 시 주의점을 제시합니다. C++20 코루틴의 성능 특성과 오버헤드를 다룹니다. 코루틴 프레임 할당·저장/복원 비용, 컴파일러 최적화 한계를 정리하고, Low-latency 경로에서의 사용 기준을 제시하며, generator·task 패턴별 비용과 대안을 비교합니다.