본문 바로가기

Algorithms and Data Structures

(11)
[자료구조] 개요 자료구조란? - data value의 모음이다. - 데이터 간의 관계를 정의하는 패턴과 각 데이터 값에 적용되는 기능 등의 작업을 포함한다. - 예를 들어 Array는 임의의 값들이 순서를 가지고서 저장되는 자료구조이며, 배열의 요소를 추가&수정&제거&이동 등의 동작도 가능하다. - 특정 자료들을 다루기 위해 고유의 구조를 정의하고, 저장된 자료들을 다루는 메소드를 작성할 수 있다. - 특정 유형의 문제에 특화된 잘 알려진 자료구조가 존재한다. - 어떤 상황에서 무슨 자료구조가 유용하며 언제 사용할 수 있고 어떻게 구현해야 하는 지를 공부한다.
[알고리즘] Recursion & JSONstringify() 1. 재귀(Recursion) -사전적 의미: 원래 자리로 되돌아옴 -재귀 함수 : 자기 자신을 호출하는 함수 -Fractal 구조(일부 작은 조각이 전체와 비슷한 기하학적 형태) 를 떠올리면서 문제의 상황을 축소확대 시켜보면서 규칙을 찾는다. -재귀의 본질은 '구조의 반복'이다. 반복문과 비슷한 맥락에서 사용될 수 있지만 반복문을 사용하는 순회는 그저 '횟수의 반복'이다. -재귀 문제를 풀 때는 먼저 문제가 재귀적으로 정의되어 있는지, 재귀로 접근이 가능한 지 부터 파악해야한다. -재귀적 정의: 어떤 물체를 정의할 때 그 물체 자체를 이용하여 설명하는 방법. -재귀 함수의 기본 구성 1) Base case: 재귀 탈출 조건, 가장 작은 단계에서의 값, 스택의 최상단, 중단점 2) Recursive ca..
[알고리즘] Frequency Counters * This pattern uses objects or sets to collect values/frequencies of values. This can often avoid the need for nested loops or O(n^2) operations with arrays/strings. * 선형 구조의 자료(배열, 문자열 등)를 객체로 정리 및 분류하여 프로파일을 작성하여 자료 접근을 쉽게 만든다. * 여러 데이터 집합이 서로 같은 조각으로 이루어져 있는 지 비교하거나, 혹은 포함되는지 아니면 한 배열이 각 개별 조각을 제곱한 다른 배열과 같은지 등을 확인해야 하는 경우 이 패턴을 응용할 수 있다. same([1, 2, 3] , [4, 1, 9]); // true same([1, 2, 1] , ..