무한 대결 테스트 프로그램

코드를 접어두니 블로그 글이 훨씬 짧아졌습니다. 예시 코드#include<bits/stdc++.h> #include<windows.h> using namespace std; int case_count; int main(){ while(true){ Sleep(50); system("generator.exe"); // 데이터 생성 system("solution1.exe"); // 첫 번째 솔루션 실행 system("solution2.exe"); // ...

6월 1일 12:21에 게시됨

공암경사하법 구현 예제

공암경사하법(Conjugate Gradient Method)은 대규모 선형 시스템과 비선형 최적화 문제를 해결하는 데 효과적인 반복법입니다. 특히 2차 형식의 함수에서 n번의 반복으로 최적해를 찾을 수 있다는 장점이 있습니다. 다음은 공암경사하법의 기본 절차입니다: 초기 추정값 x0를 설정하고 초기 방향 벡터 p0를 -g0(그래디언트)로 설정합니다. 각 반복에서 현재 위치 xi에서 p ...

6월 1일 11:55에 게시됨

C++ 입문: 네임스페이스, 함수 오버로딩, 기본값 매개변수 및 참조

C++의 입출력 방식은 C 언어와 다릅니다. C++에서는 <iostream> 헤더와 std 네임스페이스를 사용하여 cout과 cin을 이용합니다. #include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } 네임스페이스 (Namespace) 네임스페이스는 이름 충돌을 방지하기 위해 사용됩니다. 전역 ...

6월 1일 10:06에 게시됨

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월 1일 02:14에 게시됨

트래킹 세그먼트 (이분 탐색, 구간 누적합)

문제 설명 n개의 0으로 초기화된 배열 a가 주어집니다. 또한 m개의 구간이 주어지며, 각 구간은 l_i와 r_i(1 ≤ l_i ≤ r_i ≤ n)로 정의됩니다. 이는 배열 a의 부분 배열 a[l_i], a[l_i+1], ..., a[r_i]를 의미합니다. 특정 구간에서 1의 개수가 0의 개수보다 크다면 해당 구간을 아름다운 구간이라고 합니다. 예를 들어, a = [1, 0, 1, 0, 1]인 경우 구간 [1, 5]는 1이 3 ...

5월 31일 13:04에 게시됨

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

무작위 변수의 중복 확률 계산

문제 설명 \(m\) 개의 \([0,2^n)\) 범위 내에서 균일하게 무작위로 선택된 정수 변수가 있을 때, 최소 두 개의 변수 값이 동일할 확률을 구하는 문제입니다. 정확한 계산을 위해 결과를 \(a/b\) 형태로 표현하며, 여기서 \((a,b)=1\). 이때, \(a\)와 \(b\)는 \(10^6+3\)에 대해 모듈러 연산 후 출력해야 합니다. 데이터의 70%에 대해, \(m \le 10^6\) 모든 데이터에 대해, ...

5월 30일 07:47에 게시됨

MFC 애플리케이션에서 wxSQLite3를 활용한 데이터베이스 연동

1. VS2022를 사용한 MFC 다중 문서 프로젝트 생성 테스트를 간소화하기 위해 모든 기능을 애플리케이션 클래스(CWinApp 파생 클래스) 내에서 구현한다. 디버깅 출력은 메인 프레임의 하단에 위치한 출력 창(OutputWnd)을 통해 수행된다. 2. 프로젝트 속성 설정 문자 집합: 다중 바이트 문자 집합(Multi-Byte Character Set)으로 설정하여 CStri ...

5월 30일 05:57에 게시됨

Unity에서 Xcode 래퍼 메서드 호출 방법

1. C++ 인터페이스 구현 // C++ 스타일 코드로 컴파일 지시어 추가 #ifdef __cplusplus extern "C" { #endif // C 문자열을 NSString으로 변환 NSString* CStringToNSString(const char* c) { return [NSString stringWithCString:c encoding:NSUTF8StringEncoding]; } // Unity 초기화 메서드 void Initialize(const char* objectName) { [UnityExtension sha ...

5월 30일 03:16에 게시됨

C++로 구현하는 LRU 캐시 시뮬레이션

캐시 시뮬레이션 문제는 메모리 계층 구조의 핵심 개념을 검증하는 대표적인 알고리즘 문제입니다. 이 글에서는 C++를 활용해 집합-연관 매핑 방식의 캐시를 모델링하고, LRU(Least Recently Used) 교체 정책을 적용하는 방법을 살펴봅니다. 문제 개요 주어진 메모리 주소 스트림에 대해 캐시 히트/미스를 판정하고, 미스 발생 시 LRU 알고리즘으로 블록을 교체해야 합니 ...

5월 29일 10:03에 게시됨