| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- define
- 함수형프로그래밍
- factory method
- 디자인패턴 #
- material3
- Functional Programming
- Kotlin
- Observer Pattern
- 빌터패턴
- ㅓ
- ㅋㅁ
- Singleton
- 디자인패턴
- 추상팩토리패턴
- Design Pattern
- PrototypePattern
- 추상 팩토리
- 프로토타입 패턴
- compose
- Abstract Factory
- designPattern
- Coroutines
- 코틀린
- 코루틴
- 안드로이드 디자인시스템
- 옵저버 패턴
- android designsystem
- Today
- Total
목록분류 전체보기 (338)
오늘도 더 나은 코드를 작성하였습니까?
모듈러 연산(mod %) 정의 A를 B로 나누었을 때의 결과(몫이 Q이고 나머지가 R)이라고 하자. A / B = Q, A %(mod) B = R A = BQ + R 10 mod(%) 4는 원을 4등분 시키고 12시 지점을 0으로 잡고 10만큼 이동하면 도착하는 곳의 숫자 "2" 즉 2바퀴 돌고 2번 더감 10 = 2*4 + 2 합동 A mod C = B mod C 이면 합동(A ≡ B(mod C))이다. (A-B)(mod C) = 0 5 mod 7 = 5 12 mod 7 = 5 19 mod 7 = 5 특징 대칭성 : A ≡ B(mod C)이면 B ≡ A(mod C) 추이성 : A ≡ B(mod C)이고 B ≡ D(mod C)이면 A ≡ D(mod C) 알고리즘에 필요한 지식 (A+B) mod C =(A..
일단은 두 개 부분집합으로 쪼갠다. 더 이상 나눠지지 않을 크기만큼 1개 원소만 남을때 까지 다시 병합을 해가면서 정렬한다. 빨간색 선까지 일단 쪼깨고 그리고 합치면서 정렬한다. 합치면서 정렬하는 과정. 재귀적 방법으로 구현. val arr = intArrayOf(10, 1, 5, 3, 2, 4, 7, 9, 8, 6, 5) val sortedArr = IntArray(arr.size) { 0 } fun merge(m: Int, middle: Int, n: Int) { var i = m var j = middle + 1 var k = m // 비교하면서 정렬된 배열에 넣기. while (i
퀵 정렬(quick sort)은 기준키를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 하여 작은 값을 갖는 데이터와 큰 값을 갖는 데이터로 분리해가며 정렬하는 방법이다. 기준키(pivot)은 임의 원소를 잡으면된다. 일반적으로 제일 처음에 있는 원소 또는 가장 중간에 있는 원소를 잡는다. 여기서는 제일 처음에 있는 원소를 잡도록 구현한다. /* 퀵 정렬 기준키(피벗)를 기준으로 작거나 같은 값을 지닌 데이터는 앞으로, 큰 값을 지닌 데이터는 뒤로 가도록 한다. 재귀적 방법을 이용하여 구현한다. 평균적인 시간복잡도는 O(N * logN) 최약의 경우 O(N^2) */ val arr = intArrayOf(10, 1, 5, 3, 2, 4, 7, 9, 8, 6) fun..
1. selection sort(선택정렬) /* 선택 정렬. 가장 작은것 선택하여 앞으로 이동 시킨다. 직관적이고, 구현이 쉽다. 비효율적이다. 시간복잡도 O(N^2) */ val arr = intArrayOf(1, 10, 5, 3, 2, 4, 7, 9, 8, 6) fun swap(a: Int, b: Int) { val temp = arr[a] arr[a] = arr[b] arr[b] = temp } fun selectionSort() { for (i in 0 until arr.size) { var selectedIdx = i for (j in i until arr.size) { if (arr[selectedIdx] > arr[j]) { selectedIdx = j } } swap(i, selectedI..
