일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Functional Programming
- 디자인패턴
- 코틀린
- 함수형프로그래밍
- 추상 팩토리
- El
- 싱글톤
- 옵저버 패턴
- 디자인패턴 #
- ㅋㅁ
- F
- PrototypePattern
- 팩토리 메소드
- ㅓ
- 프로토타입 패턴
- r
- designPattern
- builderPattern
- 추상팩토리패턴
- Design Pattern
- a
- Singleton
- Observer Pattern
- Kotlin
- 빌터패턴
- factory method
- Abstract Factory
- Today
- Total
목록Algorithm/개념 (21)
오늘도 더 나은 코드를 작성하였습니까?
그래프의 정의 vertex와 edge로 구성된 한정된 자료구조를 의미한다. vertex는 정점, edge는 정점과 정점을 연결하는 간선 기본적으로 알아야 될 용어 및 정의 path 경로 : 한 정점에서 다른 정점 까지의 경로 degree 차수: 하나의 정점에 연결된 간선의 개수 cycle 순환, 회로: 경로의 시작과 끝이 동일한 것 weight, cost, 가중치: 한 정점에서 다른 정점을 연결하는 간선에 부여된 비용. * 방향성 유무 무방향 즉, 양방향 이동이 가능하다. 방향성 있다 u --> v 는 되지만, u
모듈러 연산(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
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..