hljs.initHighlightingOnLoad();

♾️ Computer Science

싱글톤 패턴이란 불필요한 인스턴스 생성 없이 오직 한 개의 인스턴스만 생성하여 사용되는 디자인 패턴입니다. 싱글톤 패턴을 사용하는 이유 1. 단일 인스턴스를 보장합니다. 최초 한번의 new 연산자를 통해 고정된 메모리 영역을 사용하여 메모리 낭비를 방지합니다. 이미 생성된 인스턴스를 활용하면서 속도 측면에서 장점을 가지고 있습니다. 2. 전역 액세스 지점을 제공합니다. 싱글톤 인스턴스는 전역적으로 접근 가능한 유일한 지점입니다. Application 어디에서도 이 인스턴스에 접근할 수 있어 데이터 공유와 통신에 용이합니다. 전역 변수는 편리하지만 모든 코드가 잠재적으로 해당 변수 내용을 덮어쓸 수도 있고, 그로 인하여 앱에 오류가 발생해 충돌이 일어날 수도 있으므로 안전한 방법이 아닙니다. 싱글톤 패턴의..
GoF 디자인 패턴SW 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴으로GoF라 불리는 4명이 1995년에 처음으로 구체화 한 SW 디자인 패턴입니다. GoF 디자인 패턴 분류표목적에 따라 생성 패턴 5개, 구조 패턴 7개, 행위 패턴 11개, 총 23개 패턴으로 구성됩니다.범위에 따라 주로 클래스에 적용하는지, 객체에 적용하는지 구분됩니다.  생성 (Creational)구조 (Structural)행위 (Behavorial)클래스Factory MethodAdapter (Class)InterpreterTemplate Method객체Abstract FactoryBuilderPrototypeSingletonAdapter (Object)Bri..
분할 정복이란 주어진 문제를 둘 이상의 부분 문제로 나눈 뒤 각 문제에 대한 답을 계산하고 이를 병합해 문제를 해결하는 기법이다. 문제를 즉각 해결할 수 있을 때까지 재귀적으로 둘 이상의 하위 문제들로 나누고(Divide) 문제를 해결한 다음(Conquer) 그 결과를 이용해 다시 전체 문제를 해결하며 합치는 방법이다. 관련 알고리즘 분할 정복 방식으로 해결되는 문제로 다음 알고리즘이 있습니다. 정렬 문제(퀵 정렬, 병합 정렬) 큰 숫자 곱하기(Karatsuba 알고리즘) : n자리 수 2개를 곱하여 결과를 나타내는 알고리즘 이진 탐색 (Binary Search) Closet Pair of Points 문제 : 모든 point 쌍의 거리 중 최소의 거리를 찾는 문제 Strassens's 알고리즘 : 두 ..
이름 그대로 두 가지 포인터를 사용하여 문자열이나 배열(또는 리스트)에서 원하는 값을 찾거나 반복문을 써야 할 때 쓰는 방식 투포인터 알고리즘은 Two Pointer Algorithm 또는 Sliding Window라고 부른다. 1차원 배열이 있고, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해가면서 원하는 것을 얻는 형태이다. 코딩 테스트 문제를 풀다 완전 탐색으로 해결하다보면 시간 초과가 나는 문제가 종종 있다. 이러한 경우 투 포인터를 사용하면 메모리와 시간 효율성을 높일 수 있다. 포인터는 크게 두가지 방식으로 쓰인다. 앞에서 시작하는 포인터와 끝에서 시작하는 포인터가 만나는 형식 또는 빠른 포인터(fast runner)가 느린 포인터(slow runner)보다 앞서는 형식 ..
DFS란 말 그대로 깊은 부분을 우선적으로 탐색하는 기법이다. 이 알고리즘의 핵심은 스택(stack) 자료구조를 사용하는 것이다. 스택 자료구조는 FILO (First-In-Last-Out) 방식을 따른다. 즉 스택에 데이터를 집어넣을 때 순서와 스택에서 데이터를 꺼낼 때 순서가 역방향이라는 것이다. DFS는 가능한 모든 경로(후보)를 탐색한다. 따라서, 불필요할 것 같은 경로를 사전에 차단하거나 하는 등의 행동이 없으므로 경우의 수를 줄이지 못한다. 따라서 N! 가지 경우의 수를 가진 문제는 DFS로 처리가 불가능할 것이다. DFS 알고리즘 구체적인 동작 과정은 아래과 같다. 탐색 시작 노드를 스택에 삽입하고 "방문처리"를 한다. 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접 노드를 ..
nerowiki
'♾️ Computer Science' 카테고리의 글 목록 (4 Page)