본문 바로가기
반응형

자료구조73

[자료구조] 연결 리스트 연결리스트 정의- 연결리스트는 데이터와 포인터를 가지고 있는 노드를 한 줄로 연결하여 데이터를 저장하는 자료구조- 포인터는 다음이나 이전의 노드와 연결을 담당- 연속된 메모리 구조가 아닌 파편화된 메모리에서 유용하게 사용- 접근 시간 복잡도: 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.
[C++로 배우는 알고리즘과 자료구조] Day 1: 알고리즘과 자료구조 소개 알고리즘과 자료구조란?알고리즘 (Algorithm)알고리즘은 주어진 문제를 해결하기 위해 설계된 일련의 절차나 방법입니다. 알고리즘은 컴퓨터 과학에서 매우 중요한 개념으로, 효율적인 문제 해결과 성능 최적화를 위해 필수적입니다.알고리즘의 특징:명확성 (Clarity): 각 단계는 명확하고 이해하기 쉬워야 합니다.유한성 (Finiteness): 알고리즘은 반드시 종료되어야 합니다.입력 (Input): 0개 이상의 입력이 있어야 합니다.출력 (Output): 1개 이상의 출력이 있어야 합니다.효율성 (Efficiency): 시간과 공간 측면에서 효율적이어야 합니다.자료구조 (Data Structure)자료구조는 데이터를 저장하고 조직화하는 방법입니다. 자료구조는 데이터에 대한 접근 및 수정 작업을 효율적으로.. 2024. 7. 1.
[C++ 심화 알고리즘과 자료구조 시리즈] 목차 C++ 심화 알고리즘과 자료구조 시리즈Day 1: 트라이(Trie) 자료구조와 문자열 검색Day 2: 세그먼트 트리(Segment Tree)Day 3: 펜윅 트리(Fenwick Tree, Binary Indexed Tree)Day 4: 이면 탐색 트리(Treap)Day 5: 균형 이진 탐색 트리(AVL 트리, Red-Black 트리)Day 6: 스플레이 트리(Splay Tree)Day 7: 스킵 리스트(Skip List)Day 8: 최소 커버링 트리(Minimum Spanning Tree) 심화Day 9: 최단 경로 알고리즘 심화 (벨만-포드, 존슨 알고리즘)Day 10: 위상 정렬(Topological Sorting)Day 11: 강한 연결 요소(Kosaraju, Tarjan 알고리즘)Day 12: 네.. 2024. 6. 20.
반응형