일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Observer Pattern
- 디자인패턴
- PrototypePattern
- Abstract Factory
- 함수형프로그래밍
- r
- designPattern
- Functional Programming
- 빌터패턴
- 싱글톤
- Design Pattern
- ㅋㅁ
- 추상팩토리패턴
- F
- 코틀린
- a
- 옵저버 패턴
- Kotlin
- builderPattern
- 팩토리 메소드
- 프로토타입 패턴
- El
- 추상 팩토리
- ㅓ
- factory method
- 디자인패턴 #
- Singleton
- Today
- Total
목록분류 전체보기 (327)
오늘도 더 나은 코드를 작성하였습니까?
컴퓨터 과학에서 마스크 또는 비트마스크는 비트 필드의 비트 연산에 특별히 사용되는 데이터입니다 컴퓨터의 CPU에서 실제 연산이 이루어지는 비트연산을 통하여 어떤 상태를 숫자로 표현한다. 예) 세명의 사람의 식사를 한다고 하자. 이때, 한식과 양식 둘 중 하나만 주문할 수 있다. 첫번째 사람은 양식, 두번째 사람은 한식, 세번째 사람은 양식을 골랐다고 하면, 한식 = 0 , 양식 = 1이라 생각을 해보자. 첫번째 사람 = 1 두번째 사람 = 0 세번째 사람 = 1 1 0 1(2) = 5 즉, 사람마다 선택한 식사를 정수 = 5, 이진수 101로 표현 가능하다. 비트연산을 통하여 이 상태를 표현, 변경, 확인 하는것을 비트마스킹이라 한다. * Java 및 kotlin에서는 Int(정수) type을 저장하기 ..
정의 AVL Tree(Adelson-Velsky and Landis 만든 사람 이름) * 이진탐색 트리의 일종이기 때문에 이진탐색 트리의 특성을 모두 만족한다. - 스스로 균형을 잡는 데이터 구조 중 처음으로 발명되었다. - AVL 트리에서, 두 자식 서브트리의 높이는 항상 최대 1만큼 차이만 난다. - 삽입, 삭제 시점에 특정 노드를 기준으로 양쪽의 두 서브 트리의 높이 차이가 1보다 커지면 이 속성을 유지하기 위해서 균형을 잡는다. 검색, 삽입, 삭제는 모두 평균과 최악의 경우 O(log n)의 시간복잡도가 걸린다. 삽입과 삭제는 한 번 이상의 트리 회전을 통해 균형을 잡을 수 있다 이진트리에서 데이터가 아래와 같이 한쪽으로 편향되어서 저장이 된다면, O(n) 시간복잡도가 걸린다. 이것을 해결하기 위..
참조한 자료 유튜브 - https://www.youtube.com/watch?v=i57ZGhOVPcI 정의 *이진 트리(binary tree)- 각각의 노드가 최대 두 개의 자식 노드를 가지는 트리 자료 구조 이진 탐색 트리(BST: binary search tree) 이진 트리중 아래와 같은 특징을 지니는 트리 - 모든 노드는 값(value)을 가진다. - 값은 대소관계가 존재한다. 즉 비교 가능하다. - 노드의 왼쪽 서브트리에는 그 노드의 값보다 작은 값들을 지닌 노드들로 이루어져 있다. - 노드의 오른쪽 서브트리에는 그 노드의 값보다 큰 값들을 지닌 노드들로 이루어져 있다. - 좌우. 서브 트리는 각각이 다시 이진 탐색 트리 이다. search / insert / delete *search 는 In..
이진법 정의 이진법(二進法, binary)은 두 개의 숫자(0과 1)만을 이용하는 수 체계이다. * 이진수 각 자릿수에 따른 표현 가능한 수. 1자리 -> 0, 1 2자리 -> 00, 01, 10, 11 3자리 -> 000, 001, 010, 011, 100, 101, 110, 111 n자리 -> 2^n개 변환 10진수 -> 2진수 예) 20 1이 될때까지 나눠서 나머지를 모음. fun decimalToBinary(n: Int): IntArray { var decimal = n val arr = IntArray(32) { 0 } var idx = 0 while (decimal != 1) { arr[idx] = decimal % 2 decimal /= 2 idx += 1 } arr[idx] = decima..