일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- builderPattern
- El
- r
- 옵저버 패턴
- 함수형프로그래밍
- 팩토리 메소드
- 디자인패턴 #
- 디자인패턴
- 빌터패턴
- ㅋㅁ
- 싱글톤
- a
- 추상팩토리패턴
- ㅓ
- Functional Programming
- Observer Pattern
- designPattern
- Abstract Factory
- Singleton
- 프로토타입 패턴
- 코틀린
- Design Pattern
- F
- 추상 팩토리
- Kotlin
- PrototypePattern
- factory method
- Today
- Total
목록Algorithm/개념 (21)
오늘도 더 나은 코드를 작성하였습니까?
컴퓨터 과학에서 마스크 또는 비트마스크는 비트 필드의 비트 연산에 특별히 사용되는 데이터입니다 컴퓨터의 CPU에서 실제 연산이 이루어지는 비트연산을 통하여 어떤 상태를 숫자로 표현한다. 예) 세명의 사람의 식사를 한다고 하자. 이때, 한식과 양식 둘 중 하나만 주문할 수 있다. 첫번째 사람은 양식, 두번째 사람은 한식, 세번째 사람은 양식을 골랐다고 하면, 한식 = 0 , 양식 = 1이라 생각을 해보자. 첫번째 사람 = 1 두번째 사람 = 0 세번째 사람 = 1 1 0 1(2) = 5 즉, 사람마다 선택한 식사를 정수 = 5, 이진수 101로 표현 가능하다. 비트연산을 통하여 이 상태를 표현, 변경, 확인 하는것을 비트마스킹이라 한다. * Java 및 kotlin에서는 Int(정수) type을 저장하기 ..
이진법 정의 이진법(二進法, 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..
정의 그래프를 방문 또는 탐색하는 방법중 하나이다. 시작 노드를 기준으로, "동일한 레벨"를 기준으로 탐색을 진행한다. 즉, 1개의 간선으로 연결된 모든 노드 탐색 후, 2개의 간선으로 연결된 모든 노드 탐색.. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 탐색을 적용한다 한번 방문한 노드는 다시 방문하지 않는다. V - 정점(노드)의 개수 E - 간선의 개수 인접리스트로 표현된 자료구조로 탐색 했다면 시간복잡도 - O(V + E) 인접행렬로 표현된 자료구조로 탐색 했다면 (시간 복잡도가 크기 때문에 인접리스트로 바꾸어 탐색) 시간복잡도 O(V^2) 동일한 level 순으로 탐색을 해야될때 사용한다. 간선에 특별한 가중치가 있지 않고 모든 간선의 가중치가 동..
정의 그래프를 탐색 하는 방법중 하나이다. 그래프에서는 탐색을 시작하는 노드를 시작으로 인접한 노드로 지속적으로 이동한다. 더 이상 탐색을 하지 않은 인접한 노드가 없을 때 까지 탐색을 진행후, 부모노드로 돌아와서 탐색하지 않은 인접한 노드를 탐색한다. 인접한 모든 노드가 탐색이 완료되면 종료한다. * 탐색은 한번 방문한 노드는 다시 방문하지 않습니다. (부모노드로 돌아오는것 이외에) * 현재 노드에서 다음 노드로 이동시 인접한 노드중에 선택하는 기준은 위 그림에선 왼쪽 --> 오른쪽이다. V - 정점(노드)의 개수 E - 간선의 개수 인접리스트로 표현된 자료구조로 탐색 했다면 시간복잡도 - O(V + E) 인접행렬로 표현된 자료구조로 탐색 했다면 (시간 복잡도가 크기 때문에 인접리스트로 바꾸어 탐색) ..