COCI 2014-2015 #6 PAPRIKA 고추 문제
문제 설명
주厨 Marin은 n개의 고추를 가지고 요리를 만들 예정이다.
그는 나이가 x일 이하인 모든 고추로 요리 A를 만들고, 나머지 모든 고추로 요리 B를 만든다.
각 고추는 자신의 꿈을 가지고 있으며, 자신이 요리 A가 되고 싶은지 요리 B가 되고 싶은지 알고 있다.
하지만 고추들은 x의 값을 모른다. 꿈을 실현하는 고추의 수를 최대화하기 위해 다음과 같은 교환 ...
7월 16일 19:29에 게시됨
C++ 메모리 할당 영역별 특징과 static 키워드 활용법
C++의 메모리 할당 영역
C++에서 프로그램이 실행될 때 데이터는 목적과 수명에 따라 다양한 메모리 영역에 할당됩니다. 각 영역의 특성을 이해하는 것은 효율적이고 안전한 코드를 작성하는 데 필수적입니다.
1. 스택(Stack)
스택은 컴파일러가 자동으로 관리하는 영역입니다. 함수 호출 시 생성되는 지역 변수, 매개변수, 반환 주소 등이 여기에 저장됩니다. 프로세스의 ...
7월 15일 22:38에 게시됨
Windows 프로세스 제어를 위한 Xenos DLL 인젝터 사용법 및 주요 특징
Xenos는 Windows 운영체제에서 실행 중인 프로세스 메모리 공간에 동적 링크 라이브러리(DLL)를 삽입하기 위한 강력한 오픈소스 도구입니다. DarthTon에 의해 개발된 이 프로젝트는 소프트웨어 디버깅, 리버스 엔지니어링, 기능 확장 등 다양한 기술적 목적으로 널리 사용됩니다.
1. 핵심 기술적 사양
Xenos는 단순한 인젝션 도구를 넘어, 현대적인 Windows 보안 ...
7월 15일 18:41에 게시됨
주어진 범위 내 인접 소수 간 거리 찾기
주어진 정수 범위 [L, R] 내에서 서로 가장 가까운 두 소수와 가장 먼 두 소수를 찾는 문제를 다룹니다. 이 문제는 에라토스테네스의 체와 분할 체(Segmented Sieve) 기법을 활용하여 효율적으로 해결할 수 있습니다.
알고리즘 개요
작은 소수들을 위한 에라토스테네스의 체 실행:
[L, R] 범위의 수들을 체로 거르기 위해서는 R의 제곱근(sqrt(R))까지의 모 ...
7월 15일 17:32에 게시됨
CSP-J/S 2023 대회 후기
이 글은 Oler의 대회 후기이며, 추후 상세한 수정이 있을 예정입니다.
참고: 특별한 사정으로 인해 시험 당일에 후기를 작성하지 못해 아쉬움이 큽니다.
업데이트 (2023-11-20): 합격선이 발표되었는데, 간신히 일반전형 1차 합격선에 들었습니다.
시험 전날
"마지막 밤이니 템플릿이나 외우자"
템플릿 몇 개를 외웠다... (시험장에서 하나도 사용하지 못함)
"정신을 위 ...
7월 15일 16:10에 게시됨
C++ RabbitMQ 클라이언트 래퍼: 데드 레터 큐 시나리오에서의 소비자 래핑 전략
데드 레터 큐 핵심 개념
데드 레터 큐(Dead Letter Queue, DLQ)는 정상적으로 소비되지 못한 메시지를 처리하는 데 사용되며, 다음과 같은 시나리오에서 트리거됩니다:
메시지가 거부(reject)되고 requeue=false 설정
메시지 만료(TTL 초과)
큐 최대 길이 도달
수학적으로 큐 상태는 다음과 같이 표현할 수 있습니다:
$$ \te ...
7월 15일 01:03에 게시됨
C++ 동시성 프로그래밍에서 뮤텍스와 조건 변수의 성능 비교
소개
본 글은 가장 간단한 생산자-소비자 모델을 통해 프로그램 실행 시 CPU 사용률을 관찰하여 뮤텍스와 뮤텍스+조건 변수의 성능을 비교합니다.
이 예제에서는 1개의 생산자와 5개의 소비자로 구성된 생산자-소비자 모델을 사용합니다. 생산자 스레드가 큐에 데이터를 넣고, 5개의 소비자 스레드가 큐에서 데이터를 가져옵니다. 데이터를 가져오기 전에 큐에 데이터가 있 ...
7월 15일 00:42에 게시됨
고정밀도 연산 기법
일반적으로 정수 덧셈, 뺄셈, 곱셈, 나눗셈은 프로그래밍 언어에서 기본적으로 제공하는 연산자 (`+`, `-`, `*`, `/`)를 사용하여 처리합니다. 하지만 처리해야 할 숫자의 길이가 100자리, 1000자리에 달하는 등 매우 길어질 경우, `int`나 `long long`과 같은 기본 자료형의 표현 범위를 초과하게 됩니다. 이럴 때 사용하는 것이 바로 고정밀도(High Precision) 연산 기법 ...
7월 14일 21:45에 게시됨
MiniSat: 효율적인 불리언 SAT 솔버 및 개발자 가이드
MiniSat: 효율적인 불리언 SAT 솔버 및 개발자 가이드
프로젝트 개요: 경량화된 SAT 솔버의 기술적 특징
MiniSat은 C++로 작성된 고성능 불리언 만족성 문제(SAT) 솔버로서, 미니멀리즘 디자인과 뛰어난 성능으로 잘 알려져 있습니다. 학계와 산업계에서 널리 사용되는 논리 추론 엔진인 MiniSat은 모듈화된 아키텍처를 통해 기본 알고리즘과 고급 최적화 기능을 결합합니 ...
7월 14일 01:29에 게시됨
조건 연산자 심층 분석
조건 연산자란?
조건 연산자는 C 계열 언어(C/C++, Java, C# 등)에서 사용되는 삼항 연산자(ternary operator)를 의미하며, 다음과 같은 문법 형식을 가집니다:
<식1> ? <식2> : <식3>
식1은 불린(boolean) 표현식으로, 그 값이 참이면 식2를 반환하고 거짓이면 식3을 반환합니다.
대부분의 언어에서 조건 연산자는 우결합성(right-associative)을 ...
7월 14일 01:15에 게시됨