C++ 기반 동적 주소록 시스템 개선 및 재구성
기존 시스템 분석
기존 주소록 관리 프로그램은 C++로 구현되었으나, 고정 크기 배열(MAX = 1000)을 사용하여 확장성이 부족했으며, 입력 검증이 미흡해 비정상 종료 위험이 존재했습니다. 또한 system("cls") 및 system("pause")를 사용해 Windows에 종속적이었고, 데이터가 메모리에만 저장되어 프로그램 종료 시 모든 정보가 소실되었습니다. 특히 이름 기반 검색/삭제 ...
10월 3일 08:33에 게시됨
포브스 부자 순위 조회 시스템
포브스 잡지는 매년 전 세계 최고 부자들의 순위를 발표합니다. 이 문제에서는 특정 연령대 내에서 가장 부유한 사람들을 찾는 시뮬레이션을 구현해야 합니다. N명의 자산 정보가 주어지면, 각 질의에 대해 지정된 연령 범위 [Amin, Amax] 내에서 자산이 가장 많은 M명을 출력하는 것이 목표입니다.
입력 형식
첫 줄에 사람 수 N과 질의 수 K가 주어집니다. 다음 N줄에는 ...
9월 13일 06:50에 게시됨
알고리즘 대회에서의 C++ STL 효율적 활용 가이드
STL 의 기본 개념과 구성 요소
C++ 표준 템플릿 라이브러리 (Standard Template Library, 이하 STL) 는 다양한 자료 구조와 알고리즘을 범용적으로 제공하는 템플릿 클래스 모음입니다. 개발자의 재구성을 최소화하고 코드의 가독성과 실행 속도를 향상시키는 데 핵심적인 역할을 합니다. 특히 알고리즘 경시대회에서 STL 은 수작업으로 구현하던 복잡한 자료 구조들을 몇 ...
9월 13일 03:33에 게시됨
C++ STL 주요 컨테이너 및 알고리즘 활용 가이드
Vector (벡터)
std::vector는 동적 배열을 구현한 시퀀스 컨테이너입니다. 메모리 상에서 연속적인 공간을 사용하며, 임의 접근(Random Access)이 가능하다는 특징이 있습니다.
반복자 및 범위 기반 for 루프
begin()은 첫 번째 요소를 가리키는 반복자를, end()는 마지막 요소의 다음 위치를 가리키는 반복자를 반환합니다. C++11부터 도입된 범위 기반 for 루프는 이를 ...
9월 8일 10:41에 게시됨
C++ STL의 map 및 set 컨테이너 심층 해설
C++의 표준 템플릿 라이브러리(STL)에서 map과 set은 연관 컨테이너로 분류되며, 주로 레드-블랙 트리 기반으로 구현되어 로그 시간 복잡도 내의 삽입/삭제/탐색 연산을 보장합니다. 이 글에서는 두 컨테이너의 내부 동작 원리와 주요 기능, 실용적인 사용 예를 살펴보겠습니다.
map: 키-값 쌍의 정렬된 연결 매핑
map은 고유 키에 대응하는 값을 저장하는 연관 컨테이너 ...
9월 7일 00:02에 게시됨
C++ 함수 템플릿과 클래스 템플릿의 이해
1. C++ 템플릿 기초 및 중요성
C++ 템플릿은 데이터 타입에 구애받지 않는 일반화된 코드 작성에 핵심적인 역할을 합니다. 함수 템플릿과 클래스 템플릿 두 가지 유형으로 구성되며, 이들은 컴파일 시간에 타입을 파라미터화하여 코드 재사용성을 높이는 데 기여합니다.
1.1 함수 템플릿 정의 및 작동 원리
함수 템플릿은 특정 데이터 타입에 의존하지 않고 다양한 타입 ...
9월 2일 07:20에 게시됨
C++ 스택 및 큐 컨테이너 어댑터 분석과 커스텀 구현
컨테이너 어댑터의 개념
C++ 표준 템플릿 라이브러리 (STL) 에서 스택 (stack) 과 큐 (queue) 는 독립적인 데이터 구조라기보다는 기존 컨테이너를 래핑하여 특정 접근 규칙을 강제하는 컨테이너 어댑터로 분류됩니다. 이들은 내부적으로 다른 컨테이너를 저장소로 활용하며, 사용자에게는 제한된 인터페이스만을 노출합니다.
스택 (Stack) 어댑터
동작 원리 및 정의
스택 ...
8월 5일 19:11에 게시됨
C++ 컨테이너 어댑터: stack, queue 및 priority_queue의 이해와 구현
1. stack의 특징과 활용
C++ STL의 stack은 LIFO(Last-In-First-Out, 후입선출) 원칙을 따르는 컨테이너 어댑터입니다. 데이터의 삽입과 삭제가 한쪽 끝(Top)에서만 이루어지는 구조를 가집니다.
1.1 stack의 주요 인터페이스
함수
설명
push(val)
스택의 맨 위에 데이터를 추가
pop()
스택의 ...
8월 5일 00:44에 게시됨
C++ STL: map과 multimap 심층 분석
map과 multimap 개요
map과 multimap은 C++ Standard Template Library (STL)에서 제공하는 연관 컨테이너로, std::pair 객체를 사용하여 키(key)와 값(value)의 쌍으로 데이터를 저장합니다. 이 두 컨테이너는 내부적으로 레드-블랙 트리(Red-Black Tree) 자료구조를 기반으로 구현되어, 저장된 요소들이 항상 키를 기준으로 정렬된 상태를 유지합니다. 이러한 정렬 특 ...
7월 31일 07:58에 게시됨
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): 하위 시퀀스가 마지막 ...
7월 28일 01:09에 게시됨