일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ㅓ
- Design Pattern
- designPattern
- 추상팩토리패턴
- 팩토리 메소드
- 프로토타입 패턴
- r
- 싱글톤
- 코틀린
- material3
- El
- Observer Pattern
- Functional Programming
- 디자인패턴
- Singleton
- 디자인패턴 #
- 안드로이드 디자인시스템
- compose
- Abstract Factory
- 함수형프로그래밍
- Kotlin
- PrototypePattern
- F
- ㅋㅁ
- android designsystem
- factory method
- builderPattern
- 추상 팩토리
- 옵저버 패턴
- 빌터패턴
- Today
- Total
목록분류 전체보기 (333)
오늘도 더 나은 코드를 작성하였습니까?
class OpenHashTable(private var initTableSize: Int = DEFAULT_TABLE_SIZE) { companion object { private const val DEFAULT_TABLE_SIZE = 20 private const val FULL = -1 } private enum class State { OCCUPIED, EMPTY } private data class Slot(var state: State, var key: K? = null, var value: V? = null) { var hashCode = key.hashCode() } var size: Int = 0 private var table: Array = Array(initTableSize) { S..

해시 충돌 hash function이 서로 다른 두 개의 입력값에 대해 동일한 출력값을 내는 상황 Open Addressing(개방 주소법) 해시 충돌이 발생하면 테이블 내의 사용되지 않는 곳을 탐사(Probe) 한 후, 비어있는 곳에 충돌된 데이터를 저장하는 방식 - Linear Probing (선형조사) 비어있는 곳을 선택할 때, 바로 다음 빈 공간으로 한다. 1. 함수의 결과에 따른 index의 슬롯이 비어 있으면 데이터를 저장한다. 2. 비어 있지 않다면, 이전에 저장된 데이터의 key 비교한다. 3. key 값이 같다면, 값을 업데이트한다. 다르면 바로 다음 index를 확인합니다. 3. 빈 슬롯을 찾을때까지 1칸씩 이동하여, 빈 슬롯을 찾으면 데이터를 저장합니다. *저장을 하는 배열은 원형이라..

정의 map키(key) 역할을 하는 데이터와 값(value) 역할을 하는 데이터를 짝 지어(=연결 지어) 저장하는 데이터 구조를 말한다. 키는 저장된 데이터의 구별에, 값은 그 키와 연결되어 저장된 데이터를 뜻한다. 키는 데이터 구별에 사용되기 때문에 중복되지 않는다. map 인터페이스를 구현한 Concrete Class들에는 Hashmap HashTable등이 있다. 두 구현 클래스의 차이도 있겠지만 아래표로 간단하게 보고, 일단 Hash에 대해서 알아보자! Hash를 사용하는 대표적인 자료구조는 map(c++, java), dictionary(python)등이 있다. 이외에도 hash를 사용하는 곳은 많지만, 일단은 대표적인 자료구조인, map을 중심적으로 hash를 알아보자. Hash란 무엇인가? ..
정의 어떤 임의의 수열이 주어질 때, 이 수열에서 몇 개의 수들을 뽑아서 부분수열을 만들 수 있다. 이때, 만들어진 부분수열 중 오름차순으로 정렬된 길이가 가장 긴 수열을 최장 증가 부분 수열이라 한다. 예를 들어 다음 수열이 주어졌다고 하자. ---> 탐색을 한다 가정할때, 5 1 6 2 7 3 8 1 2 3 8 5 6 7 8 모두 길이가 4인 최장 증가 부분 수열이다. 문제로 익혀보기. https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {1..