메모리를 효율적으로 빠르고 안정적으로 데이터 처리하는 것이 궁극적인 목표특정 문제를 효율적이고 빠르게 해결하는 것이 궁극적인 목표정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것기초 코딩 능력 (문제해결 능력, 알고리즘)전문 분야 지식 (프론트엔드, 백엔드 등)기
알고리즘을 잘 공부하는 법 문제를 풀 때 중요한 것 항상 여러가지 풀이 방법이 있을 수 있다는 것을 기억하자 항상 예외가 있을 수 있다는 것을 기억하자 내가 풀어낸 답이 베스트인지 의심하자 문제를 풀었다면 시행착오를 모두 기록하자 다른 사람의 코드를 많이보자. 생각하지
메모리를 효율적으로 사용하며 빠르고 안정적으로 데이터를 처리하는 것이 궁극적인 목표로 상황에 따라 유용하게 사용될 수 있도록 특정 구조를 이루고 있다.현실에 존재하는 영화 예매를 어떻게 컴퓨터로 옮길 것인가?현실에서 수행되는 프로세스는?고객은 어떤 영화를 볼지 고른다.
입력 크기하드웨어 성능운영체제 성능컴파일러 최적화비동기 로직그외 다수시간복잡도를 나타내기 위한 방법 중 하나입니다.위의 차트와 하단 순서만 기억해도 기본적으로 필요한 것을 갖췄다고 할 수 있습니다.선형시간은 입력받은 크기만큼 루프를 도는 것로그시간은 입력받은 크기에 로
연관된 데이터를 연속적인 형태로 구성된 구조를 가집니다.배열에 포함된 원소는 순서대로 번호(index)가 붙습니다.고정된 크기를 가지며 일반적으론 동적으로 크기를 늘릴 수 없습니다.자바스크립트와 같은 스크립트 언어는 동적으로 크기가 증감될 수 있습니다.원하는 원소의 i
배열과 객체 배열 출선번호와 같이 값을 번호로 추적할 수 있습니다. 객체 이름이 붙어있는 사물함을 추적하는 것과 같습니다. 자바스크립트의 배열 배열 생성방법 from 메서드 : 첫 인자로 배열, 두번째 인자로 함수를 받아 첫 번째 인자를 베이스로 함수를 통해 출력된
배열을 공부하면서 '추가'와 '삭제'가 반복되는 로직일경우 시간복잡도 부분에서 좋지 않다고 공부했었습니다.배열 X연결 리스트 O각 요소를 포인터로 연결하여 관리하는 선형 자료구조입니다.각 요소는 노드라고 부르며 데이터 영역과 포인터 영역으로 구성됩니다.메모리가 허용하는
'Last In First Out' 이라는 개념을 가진 선형 자료구조입니다.바닥이 막힌 상자를 생각하면 편합니다. ex) 프링글스Push, Pop 만 가능합니다.Push, Pop 만 사용배열의 단점인 중간요소 추가, 삭제로직이 전혀 사용되지 않아서 아주 적합하고 유리합
'First In First Out' 이라는 개념을 가진 선형 자료구조다.'Linear Queue', 'Circular Queue' 가 존재한다.'Front' : 큐의 맨 앞부분'Rear' : 큐의 맨 뒷부분'DeQueue' : 큐의 요소 제거'EnQueue' : 큐의
한정된 배열 공간에 key 를 index 로 변환하여 값들을 넣게됩니다.사물함과 비슷합니다.키와 값을 받아 키를 해싱(Hashing) 하여 나온 index 에 값을 저장하는 선형 자료구조입니다.추가는 O(1), 키를 알고 있다면 탐색과 삭제도 O(1) 으로 수행합니다.
정점과 정점 사이를 연결하는 간선으로 이루어진 비선형 자료구조입니다.정점 집합(Node)과 간선 집합(Edge)으로 표현할 수 있습니다.인물관계도지하철 노선도페이지 랭크 알고리즘정점은 여러 개의 간선을 가질 수 있습니다.크게 방향 그래프와 무방향 그래프로 나눌 수 있습
트리 정의 방향 그래프의 일종으로 정점을 가리키는 간선이 하나 밖에 없는 구조를 가지고 있습니다. 용어 Root : 가장 상위의 정점 Node : 각 정정 Leaf Node : 더 이상 자식이 없는 정점 Level : 루트로부터 몇 번째 깊이인지 표현합니다. Degre
큐(FIFO) 와 달리 우선 순위가 높은 요소가 먼저 나가는 큐클럽에서 줄을 서 있는데, VIP 는 먼저들어 가는 경우 (예시)자료구조가 아닌 개념입니다.따라서 우선순위 큐를 구현하는 방법은 다양하게 존재합니다.힙 (Heap) 도 그중 하나입니다.이진 트리 형태높은 요
문자열을 저장하고 효율적으로 탐색하는 자료구조 입니다.간선에 이전 정점으로부터 새롭게 추가되는 문자정보를 가지고 있습니다.트리 형태를 가지고 있습니다.검색어 자동완성, 사전 찾기 등에 응용될 수 있습니다.문자열 탐색시, 단순한 비교 방법보다 효율적입니다.단순한 비교 방
순서대로 하나씩 찾는 탐색 알고리즘O(n) 시간복잡도가 걸립니다.가장 단순한 탐색법정렬 되어 있는 요소들을 반씩 제외하며 찾는 알고리즘O(log n) 시간복잡도가 걸립니다.Up & Down 게임과 같은 논리의 탐색법반드시 정렬 되어있어야 가능합니다.O(log n) 시간
요소들을 일정한 순서대로 열거하는 알고리즘정렬 기준은 사용자가 정할 수 있습니다.크게 비교식과 분산식 정렬로 나눌 수 있습니다.대부분의 언어에서 빌트인으로 제공됩니다.삽입, 선택, 버블, 머지, 힙, 퀵 정렬 등 다양한 정렬 방식이 존재합니다.https://w
그래프 탐색 알고리즘으로 같은 깊이에 해당하는 정점부터 탐색하는 알고리즘Queue 를 이용하여 구현할 수 있습니다.시작 정점에서 가까운 정점부터 탐색합니다.V 가 정점의 수, E 가 간선의 수일 때 시간복잡도는 O(V+E) 입니다.그래프 탐색 알고리즘으로 최대한 깊은
매 선택에서 지금 이 순간 가장 최적인 답을 선택하는 알고리즘최적해를 보장해주지 않습니다.보통 최적해를 구하는 알고리즘보다 빠른 경우가 많습니다.크루스칼, 다익스트라 알고리즘 등에 사용됩니다.직관적인 문제 풀이에 적합합니다.하나의 개념입니다.