알고리즘 문제 풀이를 위한 프로그래밍 기법에 대해 간단히 정리해보고자 한다. 단순 입/출력에서도 어떤 함수를 써야 실행 시간이 조금이라도 짧아질 수 있는지 알아보자. #include using namespace std; int main() { // 이 부분에 원하는 코드 } #include 는 표준 라이브러리 전체를 포함시키는 g++ 컴파일러의 기능이다. iosttream, vector, algorithm 등의 라이브러리를 개별적으로 포함시키지 않아도 자동으로 사용할 수 있게 된다. 작성된 소스 코드의 컴파일은 터미널에서 아래와 같은 명령어로 컴파일한다. g++ -std=c++11 -02 -Wall test.cpp -o test 컴파일러는 c++11 표준을 따르고(-std=c++11) 코드를 최적화 하며..
JAVA로 구현한 링크트리스트 소스 코드는 다음과 같다. class Node { Object data; Node next_node; Node(Object obj) { this.data = obj; this.next_node = null; } } Node클래스다. 기본적으로 데이터가 들어갈 부분과 Next Node로 이루어져 있으며 어떤 데이터 타입이 들어올지 모르기 때문에 Object타입으로 클래스를 정의하였다. public class LinkedList { private Node head; private Node tail; private int size = 0; Linked List 클래스이다. head 노드와 tail 노드, 그리고 리스트의 크기를 나타내는 변수가 있다. 기본적으로 리스트 생성 시 노..
Binary Search Tree의 최악의 상황에 대해서도 균형된 시간 복잡도가 나올 수 있도록 새롭게 고안된 Balanced Binary Search Tree다. 즉, 최악의 경우 (한쪽에만 노드가 일렬로 정렬된 경우) 가 나오지 못하도록 제약 조건을 걸고 있다. [제약 조건] 1. Root Property : 루트 노드의 색은 검정(Black)이다. 2. External Property : 모든 외부 노드들은 검정(Black)이다. 3. Internal Property : 빨강(Red)노드의 자식은 검정(Black)이다. == No Double Red(빨간색 노드가 연속으로 나올 수 없다.) 4. Depth Property : 모든 리프노드에서 Black Depth는 같다. == 리프노드에서 루트노드..
- Total
- Today
- Yesterday
- retrofit
- Swift
- 함수형
- Apple Watch
- Kotlin
- C++
- 코틀린
- databinding
- Notissu
- apple
- android
- 애플워치
- 함수형프로그래밍
- 오토레이아웃
- SwiftUI
- 아이폰
- CloudComputing
- 상속
- Rxjava
- java
- 스위프트
- watchos
- Elliotable
- 컬렉션
- XCode
- Auto Layout
- ios
- 안드로이드
- 알고리즘
- Reactive programming
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |