C++ 를 활용한 삽입 정렬 알고리즘 구현과 테스트

삽입 정렬의 핵심 개념 삽입 정렬 (Insertion Sort) 은 데이터를 하나씩 꺼내어 이미 정렬된 부분에 올바른 위치를 찾아 삽히는 방식입니다. 주로 부분적으로 정렬된 데이터를 처리하거나 데이터 크기가 작을 때 효율적입니다. 이 알고리즘은 불안정하지 않으며 시간 복잡도는 평균적・최악의 경우 O(n²) 입니다. 오름차순 정렬 구현 왼 ...

7월 31일 06:46에 게시됨

C++에서 포인터, 참조, 값 전달 방식의 핵심 이해

메모리를 '서랍장'으로 이해하기 C++ 학습 과정에서 가장 헷갈리는 개념 중 하나는 바로 포인터와 참조입니다. 이를 쉽게 이해하기 위해 메모리를 일련의 번호가 붙은 서랍장이라고 상상해보세요. 각 변수는 특정 서랍에 저장되며, 그 서랍의 번호가 바로 주소입니다. 기호 '*'와 '&'의 이중적 역할 이 두 기호는 문맥에 따라 완전히 다른 의미를 가지므로 주의가 필 ...

7월 30일 22:12에 게시됨

LeetCode Weekly Contest 90 알고리즘 문제 풀이

1. Buddy Strings (친밀한 문자열) 두 개의 문자열 s와 goal이 주어졌을 때, s의 두 문자를 단 한 번 교체하여 goal과 동일하게 만들 수 있는지 확인하는 문제입니다. 풀이 전략: 두 문자열의 길이가 다르면 절대 같아질 수 없으므로 false를 반환합니다. 두 문자열이 이미 같다면, 문자열 내에 중복된 문자가 하나라도 있어야 교체 후에도 동일함을 유지할 수 있 ...

7월 30일 20:15에 게시됨

이기 게임 이론: 스프래그 - 그런디 함수의 구현 및 활용

스프래그 - 그런디 (Sprague-Grundy) 함수 개요 조합론 게임 이론에서 가장 핵심적인 개념 중 하나는 스프래그 - 그런디 정리입니다. 이 정리는 임의의 공정한 게임 (Impartial Game) 을 니무 게임으로 환원하여 승패를 판별할 수 있음을 보여줍니다. 각 상태에 할당되는 값을 그런디 수 (Grundies Number), 또는 편의상 SG 값이라고 부릅니다. SG 함수의 정의는 다음과 ...

7월 30일 17:00에 게시됨

모의 담금질 알고리즘을 이용한 최적화 문제 해결

모의 담금질(Simulated Annealing, SA)은 전역 최적해 탐색을 위한 확률 기반 휴리스틱 기법이다. 이 방법은 고온 상태에서 시작하여 점차 온도를 낮추면서 해의 공간을 탐색하며, 초기에는 덜 유리한 해도 일정 확률로 수용함으로써 국소 최적해에 빠지는 것을 방지한다. 기본적인 알고리즘 흐름은 다음과 같다: 초기 온도 \( T_0 \), 감소율 \( d \) (\( 0 < d &l ...

7월 29일 09:21에 게시됨

C++에서 friend 키워드의 진화: 언어 설계의 정교한 도구로 자리매김

friend는 단순한 문법 요소를 넘어섰다 이제 friend는 C++ 언어 내에서 단지 "private 멤버에 접근하게 해주는 키워드"를 넘어서, 고도로 제어된 신뢰 관계 설정 수단으로 자리 잡고 있다. 시간이 지날수록 그 사용은 더 엄격히 규정되고, 오히려 필요성이 커졌다. C++98: 기본적인 접근 권한 부여 초기 C++에서는 friend가 매우 단순했다. 클래스 외부의 함수나 클래스에 ...

7월 29일 02:54에 게시됨

CV에 혜택이! YTU 그리디 훈련 2(부분 주석)

경고: J 문제는 40분 동안 오류를 찾지 못해 시간 초과 발생(dp>검색) 간단한 문제 풀이(첫 번째 문제는 쉽게 해결됨) 1743 문제 A #include<bits/stdc++.h> using namespace std; const int MAX_SIZE = 100010; int n, k, sortedData[MAX_SIZE], accumulatedSum[MAX_SIZE], result, index1, index2, total; int main() { cin >> n >> k; for(int i= ...

7월 28일 23:16에 게시됨

Unreal Engine RPG: GameplayAbility 기반 클래스 구현

이 튜토리얼에서는 Unreal Engine의 GameplayAbility 시스템을 확장하여 RPG 게임 개발에 사용할 수 있는 기본 GameplayAbility 클래스를 생성하는 방법을 알아봅니다. 1. UMyGameplayAbility 클래스 생성 모든 사용자 정의 스킬의 기반이 될 UMyGameplayAbility 클래스를 만듭니다. 이 클래스는 UGameplayAbility를 상속받습니다. 2. UMyGameplayAbility 코드 작성 MyG ...

7월 28일 14:18에 게시됨

QComboBox 확장하여 우측 삭제 버튼 기능 구현

기존 QComboBox의 한계와 개선 방향 Qt에서 QComboBox는 사용자에게 미리 정의된 항목 중 하나를 선택하게 하는 핵심 위젯 중 하나다. 기본적으로 선택 항목을 표시하고, 클릭 시 드롭다운 리스트를 보여주는 기능을 제공하지만, UI/UX 측면에서 더 직관적인 조작을 원할 경우 확장이 필요하다. 특히 웹 인터페이스에서 흔히 볼 수 있는 'X' 버튼 클릭으로 선택 해제 기능 ...

7월 28일 13:43에 게시됨

Google Test(GTest) 활용 가이드: 설치부터 테스트 작성까지

Google Test(GTest) 설치 Google Test(GTest)는 C++ 개발을 위한 강력한 단위 테스트 프레임워크입니다. GTest를 시스템에 설치하는 과정은 다음과 같습니다. 1. 소스 코드 확보 GTest의 최신 버전 소스 코드를 GitHub에서 클론합니다. 일반적으로 특정 릴리스 버전을 사용하는 것이 안정적입니다. 예를 들어, 1.11.0 릴리스 버전을 사용합니다. git clone https: ...

7월 28일 10:30에 게시됨