weak_ptr와 lock으로 순환 참조 해결하기

순환 참조의 본질shared_ptr는 C++에서 메모리 관리를 자동화하는 강력한 도구이지만, 서로를 가리키는 구조에서는 치명적인 약점을 드러낸다. 두 객체가 서로를 shared_ptr로 참조하면 참조 카운트가 영원히 0에 도달하지 못해 메모리 누수가 발생한다. 이를 해결하려면 weak_ptr을 활용해 소유권과 참조를 분리해야 한다.weak_ptr의 설계 의도weak_ptr은 객체의 생 여부 ...

6월 11일 22:00에 게시됨

QtCharts를 활용한 바 차트 시각화 개발 가이드

QtCharts 모듈을 활용한 바 차트 구현 방법 Qt 기반 애플리케이션에서 데이터를 시각적으로 표현하기 위해 바 차트는 핵심적인 도구입니다. 본 문서에서는 Qt의 확장 모듈인 QtCharts를 사용하여 간단하고 효과적인 바 차트를 생성하는 방법을 단계별로 설명합니다. 핵심 컴포넌트 소개 QtCharts 모듈은 다양한 그래프 요소를 제공하며, 바 차트 생성에 필요한 주요 클래스 ...

6월 10일 20:12에 게시됨

AtCoder Beginner Contest 380 문제 분석 및 풀이

A: 문자열 패턴 확인 주어진 문자열에서 '1', '2', '3'의 등장 횟수를 세어, 각각 1개, 2개, 3개인지 검사한다. 이를 위해 배열을 사용해 각 숫자의 빈도를 저장하고 조건을 비교한다. #include <iostream> #include <string> using namespace std; void solve() { string s; cin >> s; int cnt[4] = {}; for (char c : s) cnt[c - '0' ...

6월 10일 01:13에 게시됨

KDOI-10 컵 냉각 문제 해결

KDOI-10 컵 냉각 문제 - 로그우 플랫폼 (luogu.com.cn) O(n log n) 시간 복잡도를 가진 알고리즘으로, 각 노드에 대해 최대 및 최소 공기 배출 횟수를 계산합니다. 특정 노드의 최소 횟수가 최대 횟수를 초과하거나 부모 노드 u의 최대 횟수 계산 시 j에서 감소한 값이 허용 범위를 넘으면 냉각 불가능합니다. 그 외 경우는 가능합니다. 최대 횟수 계산은 이분 탐색을 활용 ...

6월 10일 00:28에 게시됨

Qt에서 시그널과 슬롯을 활용한 폰트 스타일 변경

Qt의 시그널과 슬롯 메커니즘은 GUI 프로그래밍에서 중요한 역할을 합니다. 이를 통해 특정 이벤트가 발생했을 때 해당 동작을 실행할 수 있습니다. 아래에서는 체크박스와 라디오버튼을 이용해 텍스트의 폰트 스타일과 색상을 제어하는 방법을 설명하겠습니다. 1. 기본 개념 클래스 간의 상속 관계는 부모 클래스로부터 속성과 메서드를 물려받아 새로운 기능을 추가하거 ...

6월 9일 20:11에 게시됨

Codejock Xtreme Toolkit Pro 15.3.1 소스 포함 고성능 MFC UI 개발 툴킷

기본 구성 및 아키텍처 개요 Codejock Xtreme Toolkit Pro 15.3.1은 Visual C++ 기반의 고성능 UI 개발을 위한 전문적인 컨트롤 라이브러리로, MFC(Microsoft Foundation Classes) 프레임워크 위에 구축되어 있습니다. 이 도구는 도구 모음, 메뉴, 그리드, 차트 등 다양한 고급 인터페이스 요소를 제공하며, 오피스 스타일의 완전한 테마 시스템과 깊이 있는 맞춤화 기능 ...

6월 9일 18:03에 게시됨

MPI를 활용한 병렬 행렬 곱셈 구현

MPI(Message Passing Interface)를 이용하여 대규모 행렬 곱셈을 병렬 처리하는 방법을 설명한다. 두 가지 접근 방식을 통해 성능 차이를 비교하고자 한다. 직접 메시지 전달 방식 첫 번째 방법은 MPI_Send와 MPI_Recv를 사용하여 마스터 프로세스가 각 워커 프로세스에 데이터를 직접 분배하고 결과를 수집하는 방식이다. #include <mpi.h> #include <iostrea ...

6월 9일 17:16에 게시됨

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

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

6월 8일 21:35에 게시됨

Windows 환경에서의 USB HID 통신 클래스 설계 및 구현

CH372와 같은 USB 컨트롤러를 활용하여 장치를 제어할 때, 기본 펌웨어 모드 외에 벤더가 제공하는 DLL에 의존하지 않는 '외장 펌웨어 모드'를 사용할 수 있습니다. 이 방식은 Windows DDK(Driver Development Kit)에서 제공하는 표준 API를 사용하여 상위 애플리케이션을 직접 구현할 수 있다는 장점이 있습니다. HID 통신 클래스 구조 USB HID 장치와의 상호작용을 캡슐 ...

6월 8일 17:38에 게시됨

NOIP 2012 차량 여행 문제 해결: 양방향 연결 리스트와 이진 리프팅 최적화

문제 개요 NOIP 2012 심화 그룹의 '차량 여행' 문제는 두 운전자 A와 B가 번갈아 가며 동쪽(도시 번호가 증가하는 방향)으로 이동할 때의 경로를 시뮬레이션하고 최적의 출발지를 찾는 문제입니다. 운전 규칙: A가 먼저 운전하고 B가 다음에 운전하는 방식으로 번갈아 진행합니다. 도시 선택 기준: 운전자 B: 현재 도시와 해발 고도 차이의 절댓값이 가장 작은 도 ...

6월 8일 01:37에 게시됨