일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로토타입 패턴
- 싱글톤
- ㅓ
- F
- 옵저버 패턴
- 추상팩토리패턴
- a
- r
- builderPattern
- 디자인패턴
- PrototypePattern
- Singleton
- Observer Pattern
- 빌터패턴
- 코틀린
- Abstract Factory
- El
- Kotlin
- ㅋㅁ
- 팩토리 메소드
- Functional Programming
- 함수형프로그래밍
- 추상 팩토리
- 디자인패턴 #
- designPattern
- factory method
- Design Pattern
- Today
- Total
목록Algorithm/개념 (21)
오늘도 더 나은 코드를 작성하였습니까?
이진 검색 알고리즘(binary search algorithm) 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이다. 처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식을 채택하고 있다. 처음 선택한 중앙값이 만약 찾는 값보다 크면 그 값은 새로운 최댓값이 되며, 작으면 그 값은 새로운 최솟값이 된다. 검색 원리상 정렬된 리스트에만 사용할 수 있다는 단점이 있지만, 검색이 반복될 때마다 목표값을 찾을 확률은 두 배가 되므로 속도가 빠르다는 장점이 있다 단순히 위의 예제와 구현 코드만 본다면 어렵지 않다. fun main() { arr = intArrayOf(1, 4, 7, 9, 11, 13, 16, 17, 21, 22, 25, 28) val k..
배열/리스트에 쌍을 검색하는 데 있어 이중 반복문을 사용하는 것 대신에 2개의 index를 저장하는 변수(두개의 포인터를)이용하여 효율적으로 검색을 하는 것. 이때, 배열이 정렬 및 특정한 규칙을 가진 경우가 많다. 즉, 연산이 이중 반복문으로 너무 오래걸리면서 특정한 조건의 쌍의 원소를 찾는 문제라면 투 포인터를 사용하는것을 고민해 봐야 한다. 가장 중요한건 두 쌍이 만족하는 조건을 잘 이해하고 언제 각각의 포인터를 움직여 줄것인가를 파악해야된다. 연속된 수열의 부분합 https://school.programmers.co.kr/learn/courses/30/lessons/178870?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 ..
탐욕 알고리즘(Greedy algorithm) 최적해를 구하는 데에 사용되는 근사적인 방법으로, 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달한다. 순간마다 하는 선택은 그 순간에 대해 지역적으로는 최적이지만, 그 선택들을 계속 수집하여 최종적(전역적)인 해답을 만들었다고 해서, 그것이 최적이라는 보장은 없다. 하지만 탐욕알고리즘을 적용할 수 있는 문제들은 지역적으로 최적이면서 최종적(전역적)으로 최적인 문제들이다. 탐욕법으로 문제를 해결하기 위한조건 1. 탐욕스런 선택 성질(greedy choice property) - 앞선 선택이 이후의 선택에 영향을 주지 않는다. - 각 지역적 최적의 선택이 모두 전체에 포함됨 2...
정의 여기서는 일단, 컴퓨터 공학의 알고리즘 문제 해결에 관련한 백트레킹의 개념만 다룹니다. 백트래킹(backtracking)은 한정 조건을 가진 문제를 풀려는 전략이다. 백트래킹은 기본적으로 완전탐색을 하는것을 기반으로 합니다. 즉, 가능한 모든 경우를 고려하는것이 첫번째이다. 그리고 각각의 경우의 수를 만족하기 위한 한정적 조건들을 존재합니다. 가능성이 있는 후보를 점진적으로 구축하고 후보가 특정 목표까지 완료될 수 없다고 판단하는 즉시 후보를 포기합니다("backtracking") 이때 후보군을 포기할 때 솔루션에 영향을 주는 부분을 변경하였다면, 그것을 반드시 원복 시켜주어야 한다. 이것은 백트래킹뿐 아니라 완전탐색에서도 동일하게 원복시켜주어야 합니다. https://www.acmicpc.net/..