일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- REACT
- 컴퓨터공학
- 비동기
- 코드스테이츠
- java
- 알고리즘
- Python
- 운영체제
- typeScript
- 프로그래머스
- codestates
- 글또
- python algorithm
- algorithm
- 파이썬 알고리즘 인터뷰
- Computer Science
- 자바스크립트
- JavaScript
- 자료구조
- Operating System
- react 기초
- Zerobase
- 개발공부
- 파이썬
- useState
- context switching
- node.js
- execution context
- 자바
- OS
- Today
- Total
목록datastructure (2)
Back to the Basics
정적 배열 : 배열의 길이가 정해져서 변하지 않는 배열 동적 배열 (dynamic array) : 배열의 길이가 동적으로 변하는 배열: 배열이 꽉 찼을 때 다른 메모리 공간에 기존 배열 크기의 두 배의 공간을 할당하고, 기존 배열을 복사하는 형식으로 내부적으로 공간을 늘린다 동적 배열은 내부적으로는 정적 배열을 기반으로 한 자료구조라고 한다. 그림출처 추가 연산 (append operation) 시간 복잡도 append는 아래의 그림과 같이 배열의 끝에 요소를 추가해주는 연산이다. 그림출처 동적 배열에 값을 추가할 때 시간 복잡도를 알아보자 경우 1 : 정적 배열 남는 공간 있을 때 단순히 index를 이용하여 접근하므로 O(1)이다. 겨우 2: 정적 배열이 꽉 찼을 때 값을 추가하기 위해 현재 사용 중..
그래프를 순회하는 방법 중 가장 일반적인 너비 우선 검색과 깊이 우선 검색에 대해 공부한다 1. 너비 우선 방법 (BFS , Breadth-First Search) 그림출처 위의 그림과 같이 그래프에서 연결된 노드와 해당 노드들 간의 간선을 순서대로 검색하는 알고리즘을 말한다. 한 단계씩 내려가면서 해당 노드와 같은 레벨에 있는 노드들을 먼저 순회한다. 이진트리검색의 차수 우선 순회와 비슷한 개념이다. 구현을 위해서는 Queue를 필요로 한다. 시간 복잡도 O(V+E) : V는 정점의 개수이고 E는 간선의 개수이다. 전체 그래프를 순회하기 위해 모든 정점과 간선을 방문해야 하기 때문 아래의 무지향성 그래프의 예와 함께 코드를 분석해보자 탐색 순서는 a → b → d→ c →e 이다. 아래 코드에서 ver..