반응형 [C++로 배우는 알고리즘과 자료구조] Day 2: 배열과 문자열 배열 (Array)배열은 동일한 타입의 요소들이 연속적으로 저장된 자료구조입니다. 배열은 고정된 크기를 가지며, 인덱스를 사용하여 요소에 접근할 수 있습니다. 배열은 C++에서 가장 기본적인 자료구조 중 하나입니다.배열의 특징:고정된 크기: 배열의 크기는 생성 시 결정되며, 변경할 수 없습니다.빠른 접근 속도: 인덱스를 사용하여 O(1) 시간 복잡도로 요소에 접근할 수 있습니다.연속된 메모리 공간: 배열은 연속된 메모리 공간에 저장됩니다.배열 예제#include int main() { // 배열 선언 및 초기화 int arr[5] = {1, 2, 3, 4, 5}; // 배열의 크기 int size = sizeof(arr) / sizeof(arr[0]); // 배열의 요소 출력 .. 2024. 8. 1. [C++로 배우는 알고리즘과 자료구조 심화] Day 1: 트라이(Trie) 자료구조와 문자열 검색 트라이(Trie) 자료구조 소개트라이(Trie)는 문자열 또는 단어의 집합을 저장하고 효율적으로 검색하기 위한 트리 기반의 자료구조입니다. 주로 문자열 검색, 자동 완성, 사전 구현 등에 사용됩니다. 트라이는 각 노드가 문자 하나를 나타내며, 루트 노드에서 시작하여 각 문자를 따라가면서 단어를 구성합니다.트라이의 주요 특징빠른 검색: 문자열의 길이에 비례하는 시간 복잡도 (O(L))에서 검색이 가능합니다. 여기서 (L)은 문자열의 길이입니다.공유 구조: 공통 접두사를 가지는 문자열을 공유하여 공간을 절약합니다.삽입과 검색의 단순함: 삽입과 검색 연산이 단순하고 직관적입니다.트라이의 기본 연산삽입 (Insert): 문자열을 트라이에 삽입합니다.검색 (Search): 문자열이 트라이에 존재하는지 확인합니다... 2024. 8. 1. [참고자료] 자료구조/알고리즘/코딩테스트 자료구조 알고리즘 코딩테스트- [교재] 코딩테스트 합격자 되기(자바스크립트편) 코딩테스트 사이트- 프로그래머스: 코딩테스트 연습을 할 수 있고 교육, 채용 등 개발자에게 필요한 것이 갖추어진 사이트- SW Expert Academy: 삼성에서 운영하고, 알고리즘을 학습 할 수 있는 사이트- 백준 온라인 저지(solved.ac): 프로그래밍 문제를 해결한 다음, 소스를 제출하고 온라인으로 채점을 받을 수 있는 사이트- Softeer: 현대자동차그룹의 코딩테스트 사이트- Leetcode: 코딩 인터뷰 준비를 위한 온라인 플랫폼 2024. 7. 19. [자료구조] 연결 리스트 연결리스트 정의- 연결리스트는 데이터와 포인터를 가지고 있는 노드를 한 줄로 연결하여 데이터를 저장하는 자료구조- 포인터는 다음이나 이전의 노드와 연결을 담당- 연속된 메모리 구조가 아닌 파편화된 메모리에서 유용하게 사용- 접근 시간 복잡도: O(N)- 탐색 시간 복잡도: O(N)- 삽입/삭제 시간 복잡도: O(1)연결리스트 종류- Single Linked List: 각 노드에 자료 공간과 한 개의 포인터 공간이 있고 각 노드의 포인터는 다음 노드를 가리킴- Doubly Linked List: 노드에 앞 노드의 메모리 주소를 보관하는 포인터를 추가해 앞의 노드와 뒤의 노드 모두 연결- Circular Linked List: Single Linked List의 마지막 노드의 포인터가 NULL이 아닌 헤드를.. 2024. 7. 19. [자료구조] 배열 배열이란?- 같은 자료형의 값들의 묶음으로 연속적인 메모리를 사용- 조회시 인덱스를 이용여 속도가 빠름- 메모리 공간을 사전 할당하므로 공간 이상의 값을 저장시 메모리 재할당 필요- 접근 시간 복잡도: O(1)- 탐색 시간 복잡도: O(N)- 삽입/삭제 시간 복잡도: O(N)배열 ADT배열 구조배열 조회배열 추가배열 삭제 void insert()void remove() 프로그램 언어별 메서드- C: 동일한 자료형의 묶음/* 배열 선언 및 초기화 */type arr[size];type arr[size] = {val1, ...};/* 2차원 배열 선언 및 초기화 */type arr[size][size];type arr[size][size] = {{val1, ...}, {val2, ...}};/* 동적배열 할.. 2024. 7. 19. [참고자료] 자료구조/알고리즘/코딩테스트 자료구조- [교재] 파이썬으로 배우는 자료구조 핵심원리- 잔재미코딩: https://www.fun-coding.org/post/funcodingcodes.html#알고리즘- [교재] 파이썬 알고리즘 인터뷰- 잔재미코딩: https://www.fun-coding.org/post/funcodingcodes.html#코딩테스트- [교재] 이것이 취업을 위한 코딩테스트다- [교재] 코딩테스트 합격자되기(파이썬편)코딩테스트 사이트- 프로그래머스: 코딩테스트 연습을 할 수 있고 교육, 채용 등 개발자에게 필요한 것이 갖추어진 사이트- SW Expert Academy: 삼성에서 운영하고, 알고리즘을 학습 할 수 있는 사이트- 백준 온라인 저지(solved.ac): 프로그래밍 문제를 해결한 다음, 소스를 제출하고 온라.. 2024. 7. 19. [목차] 자료구조 1. 배열(Array)1.1 배열 정의1.2 배열 ADT1.3 프로그램 언어별 메서드2. 연결리스트(Linked List)2.1 연결리스트 정의2.2 연결리스트 종류: Singly Linked List, Doubly Linked List2.3 연결리스트 ADT2.4 연결리스트 구현2.5 프로그램 언어별 메서드3. 스택(Stack)3.1 스택 정의3.2 스택 ADT3.3 스택 구현3.4 프로그램 언어별 메서드4. 큐(Queue)4.1 큐 정의4.2 큐 ADT4.3 큐 구현4.4 프로그램 언어별 메서드5. 덱(Deque)5.1 덱 정의5.2 덱 ADT5.3 덱 구현5.4 프로그램 언어별 메서드6. 해시(Hash)6.1 해시 정의6.2 해시 ADT6.3 해시 구현6.4 프로그램 언어별 메서드7. 트리(Tree.. 2024. 7. 19. [코딩테스트] 목차 코딩테스트 with C++1. 코딩테스트 개요1.1 코딩테스트란?1.2 시간복잡도/공간복잡도1.3 코딩테스트 사이트2. C++ 기본 문법2.1 변수 및 자료형2.2 연산자2.3 제어문: 조건문2.4 제어문: 반복문2.5 함수2.6 배열2.7 문자열2.8 포인터, 참조자2.9 구조체, 열거형, 공용체2.10 STL 3. 기본 자료구조3.1 배열3.2 연결리스트3.3 스택3.4 큐3.5 덱3.6 해시3.7 트리3.8 우선순위 큐3.9 그래프4. 알고리즘4.1 정렬: 버블정렬, 삽입 정렬, 선택 정렬4.2 정렬: 퀵정렬, 병합 정렬, 계수 정렬4.3 재귀4.4 수학: 최대공약수/최소공배수, 소수 찾기, 순열과 조합4.5 다이내믹 프로그래밍4.6 그리디4.7 시뮬레이션(구현)4.8 탐색: 선형 탐색/이진 탐색4.. 2024. 7. 18. [참고자료] 자료구조/알고리즘/코딩테스트 자료구조- [교재] 읽고 나면 진짜 쉬워지는 자료구조- [교재] 이것이 자료구조 + 알고리즘이다 with C언어알고리즘- [교재] Introduction To Algorithms- [교재] 코딩 인터뷰 완전 분석- [교재] 266가지 문제로 정복하는 코딩 인터뷰 in C++코딩테스트- [블로그] 바킹독 C++ 코딩테스트- [교재] 코딩테스트 합격자되기(C++편)- [교재] 코딩테스트를 위한 자료구조와 알고리즘 with C++- [교재] 알고리즘 문제 해결 전략코딩테스트 사이트- 프로그래머스: 코딩테스트 연습을 할 수 있고 교육, 채용 등 개발자에게 필요한 것이 갖추어진 사이트- SW Expert Academy: 삼성에서 운영하고, 알고리즘을 학습 할 수 있는 사이트- 백준 온라인 저지(solved.ac).. 2024. 7. 13. [로드맵] C/C++/C# 로드맵 1. C 언어- ANSIC → C99 → C11/C17 → C231.1 C언어(기본: ANSIC)- 환경설정- 소개 및 특징- 변수, 자료형 및 형변환: bool/char/short/int/long long/float/double/typedof/const- 연산자: - 산술: +/-/*///% - 비교: ==/!=/>/>=/1.2 C언어(상세) 1.3 C언어(추가: ANSIC 이후) 2. C++- C++98 → C++11/14/17 → C++20 → C++232.1 C++(기본: C++17)- 클래스: 정의/호출/클래스변수/인스턴스변수/클래스메서드/인스턴스메서드/생성자/소멸자/getter/setter- 클래스: 접근제어자(private,public,protected)/상속/다이아몬드상속/오버.. 2024. 7. 13. 이전 1 ··· 4 5 6 7 8 다음 반응형