일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- C++ STL 정리
- 깊이 우선 탐색
- 자료구조
- object channel
- 관찰자(Observer) 패턴
- 비교 기반 정렬 알고리즘
- 스택
- 디자인패턴
- Set
- 경량 패턴
- command pattern
- 유니온-파인드
- 동적 계획법
- 외적
- 팩토리패턴
- 분포 기반 정렬 알고리즘
- Abstract Factory pattern
- 두 직선사이 교점
- 트리순회
- Trie
- 정렬 알고리즘
- 생성패턴
- Unreal Collision
- 트리
- 명령패턴
- flyweight pattern
- BFS
- Queue
- Union-Find
- Factory method pattern
- Today
- Total
목록분류 전체보기 (26)
KimMK
디자인 패턴 중 행위 패턴인 명령 패턴은 요구사항을 객체로 캡슐화하는 것이다. 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스를 설계하는 패턴으로 하나의 추상 클래스에 메서드를 만들어 각 명령이 들어오면 그에 맞는 서브 클래스가 선택되어 실행되는 특징을 갖는다. 즉, 함수 호출 자체를 객체로 감싸 캡슐화 한 것이다. 함수 호출을 객체로 만들었기 때문에 디커플링으로 코드가 유연하며, redo(재실행), undo(실행 취소), 로깅, 입력키 변경 등과 같은 기능을 구현하는데 유용하다. 간단한 예시 리모컨을 제어하는 프로그램을 만든다고 가정할 때, 이 프로그램은 다양한 장치(에어컨, TV...)를 제어하는데 사용한다. class Device { public: virtua..
디자인 패턴 중 생성 패턴인 팩토리 패턴은 팩토리 메서드 패턴과 추상 팩토리 패턴으로 나눌 수 있다. 1. 팩토리 메서드 패턴 팩토리 메서드 패턴은 상위 클래스에서 객체를 생성하는 인터페이스를 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식으로 상위에서 인스턴스를 만드는 방법만 결정하고 하위에서 데이터 생성을 조작하는 함수들을 오버라이딩해서 인터페이스와 실제 객체를 생성하는 클래스를 분리할 수 있는 특성을 갖는 디자인 패턴이다. 즉, 클래스의 인스턴스를 만드는 일을 하위 클래스에게 맡기는 것이다. 이 패턴은 객체를 생성하는 방식이나 생성하는 객체의 종류가 변해도 클라이언트 코드를 수정하지 않고 객체를 생성할 수 있게 한다. 간단한 예시 class Shape { public: virtual vo..
STL (Standard Template Library) : C++의 템플릿을 사용해 표준으로 정리된 라이브러리로 일반적인 알고리즘에 대한 효율적인 구현을 제공하는 것을 목표로 함 컨테이너, 반복자, 알고리즘 등의 라이브러리로 구성됨 ▶ 컨테이너 (Container) : 자료를 저장하는 클래스 템플릿의 집합 기본 자료형과 유저가 정의한 자료형을 담는 일종의 자료구조 종류 1. 시퀀스 컨테이너 일반적인 자료구조와 동일한 형태 ( vector(가변 배열), list(연결 리스트), string, deque, ... ) 임의의 위치에 삽입, 삭제가 가능하고 데이터를 순차적으로 저장함 자료를 입력한 순서대로 저장하기 때문에 저장, 탐색 알고리즘에 불리함 ∴ 적은 양의 자료나 검색 속도가 중요하지 않은 경우에 사..
내부 탐색: 주기억 장치에 모두 적재 후 탐색 순차 이진 이진 트리 해싱 외부 탐색 균형 트리 순차 탐색 첫 번째 레코드부터 시작해서 마지막 레코드까지 차례로 탐색 키를 비교하는 알고리즘 비교 횟수는 성공적이지 않은 탐색에 대해 N + 1회 비교, 성공적인 탐색에는 평균적으로 N/2회 비교 정렬된 연결 리스트로 구현된 순차 탐색은 항상 평균적으로 N/2회 비교 이진 탐색 성공적인 탐색과 그렇지 않은 탐색 모두 logN + 1회 이상의 비교를 하지 않음 리스트가 정렬되어 있어야 하므로 정렬된 상태를 유지하는데 추가적인 비용을 소비함 이진 트리 탐색 작은 키를 가지고 있는 레코드는 왼쪽 부분트리, 같거나 큰 키를 가진 레코드는 오른쪽 부분트리 과정: 루트와 키를 비교하고 키가 루트보다 작다면 왼쪽 서브 트리..
2022.11 서울게임아카데미 우수포폴 선정 작품 영상 https://youtu.be/h-eOQnlb5ok 기술서
정렬 알고리즘 비교 기반 선택(Selection) 버블(Bubble) 삽입(Insertion) 쉘(Shell) 퀵(Quick) 병합(Merge) 힙(Heap) 분포 기반 계수(Counting) 기수(Radix) 버킷(Bucket) 비교 기반 정렬 알고리즘 선택 정렬 배열에서 가장 작은 원소를 찾아 첫 번째 원소와 교환하고 두 번째 작은 원소를 찾아 두 번째 원소와 교환하는 방식으로 전체를 정렬하는 알고리즘 전체 데이터(N)에 대해서 비교 횟수는 N(N-1)/2가 되고 시간 복잡도는 O(N2)이 되므로 입력 데이터의 수에 따라 시간이 오래 걸리는 알고리즘이고 [1,2’,2]와 같은 입력 배열을 정렬하면 [1,2,2’]와 같이 크기가 같음에도 상대적인 위치가 변경될 수 있다는 단점을 보유 (불안정) 하지만 ..