일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- material3
- Design Pattern
- compose
- 코틀린
- Kotlin
- Observer Pattern
- Abstract Factory
- 프로토타입 패턴
- El
- factory method
- 안드로이드 디자인시스템
- builderPattern
- android designsystem
- 추상 팩토리
- Functional Programming
- r
- 팩토리 메소드
- 함수형프로그래밍
- ㅓ
- designPattern
- 빌터패턴
- 옵저버 패턴
- 디자인패턴
- 추상팩토리패턴
- Singleton
- F
- PrototypePattern
- ㅋㅁ
- 싱글톤
- 디자인패턴 #
- Today
- Total
목록전체 글 (333)
오늘도 더 나은 코드를 작성하였습니까?

비트마스킹은 0000 0000 0000 0000 0000 0000 0000 0000 31자리수의 2진수를 통해 해당 비트가 켜져있냐 꺼져있냐를 통해 2147483647의 모든 상태를 효율적으로 표현할 수 있으며 단순 정수 연산으로 속도도 매우 빠르다. * 모든 조합 구해보기. val arr = arrayOf("철수", "영희", "민수", "민지") fun fullCombination() { // 0 부터 (1 shl arr.size) 10000(2) - 1까지 모든 선택을 나타내는 수까지 반복. for (i in 0 until (1 shl arr.size)) { val result = mutableListOf() for (j in 0 until arr.size) { // 어떤 비트가 선택되 었는지 확인..

정의 이진탐색 트리의 한 종류로서 균형 잡힌 트리이다. 이진탐색 트리의 조건을 기본적으로 만족하면서, 아래의 5가지 조건을 만족해야 된다. * 자식이 없는 상태(Null, None, Nill)을 나타내는 노드가 존재한다. 1. 모든 노드는 Red/Black 두 가지중 하나의 색상값을 가진다. 2. Root노드는 반드시 Black 색상이다. 3. 없는 상태(Null, None, Nill)을 나타내는 노드는 Black 색상을 갖는다. 4. Red색상의 노드는 반드시 Black색상의 자식을 가져야 한다.(Black 노드는 Black/Red 어떤색이든 자식으로 가질 수 있다.) 5. 임의 노드에서 모든 Leaf 노드까지의 경로에서 시작 노드를 제외한, Black node의 개수(Black Height)는 동일하..

컴퓨터 과학에서 마스크 또는 비트마스크는 비트 필드의 비트 연산에 특별히 사용되는 데이터입니다 컴퓨터의 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) 시간복잡도가 걸린다. 이것을 해결하기 위..