일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 턱걸이
- 운영체제
- python
- 시스템프로그래밍
- 백준
- 알고리즘
- TensorFlow
- CV
- 프로세스
- error
- 영상처리
- 텐서플로우
- shell
- linux
- 백준알고리즘
- 쉘
- 리눅스
- OpenCV
- C++
- c
- 학습
- 딥러닝
- 코딩
- 프로그래밍
- 공부
- Windows10
- Windows 10
- 회귀
- Computer Vision
- C언어
- Today
- Total
목록공부/자료구조&알고리즘 (4)
줘이리의 인생적기
자 큐(queue) 다음으로 알아볼 자료구조는 스택(stack)이다! 스택은 큐와 동일하게 한쪽 끝에서만 자료를 넣거나 꺼낼 수 있는 자료구조이다. 하지만 큐와 다른점은 나중에 넣은 데이터를 가장 먼저 꺼낼 수 있는 자료구조이다 이러한 데이터 관리 정책을 LIFO(Last In, First Out)이라고 한다 스택은 보통 컴퓨터의 프로세스 구조의 함수 동작방식에서 자주 사용된다고 한다 이 자료구조의 장점은 단순해서 구현이 쉽다는 점과 저장과 읽기 속도가 매우 빠르다. 단점은 데이터 최대 개수를 미리 정해야 한다는 점이며, 저장공간의 낭비가 발생할 수 있다는 점이다 push()와 pop()을 주요 기능으로 가지고 있다는 것 까지 기억하고 실습을 해보도록 하겠다 먼저 파이썬의 리스트 기능으로 스택을 사용하는..
큐에 대해서 ! 큐의 구조에 대해서 먼저 알아보고 관련된 용어, 라이브러리를 불러와서 구현까지 해보겠다 큐는 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조이다. 예를 들자면, 줄을 서는 행위와 매우 유사하다. 줄을 먼저 선 사람이 제일 먼저 입장하는 것처럼. 이러한 정책을 FIFO(First-in, First-Out) 정책이라고 한다 관련된 용어로는 Enqueue, Dequeue가 있고, Enqueue는 큐에 데이터를 넣는다는 뜻, Dequeue는 큐에서 데이터를 꺼낸다는 뜻이다. 데이터를 넣으면 제일 뒷부분에 데이터가 들어가고 데이터를 꺼내면 제일 앞에 있는 데이터가 출력된다. 이제 라이브러리를 사용해보자 import queue queue_example = queue.Queue() # data..
가장 기본적인 자료구조인 배열에 대해서 알아보겠다 배열은 데이터를 나열하고, 각각의 데이터를 인덱스에 대응하도록 구성한 자료구조이다. 파이썬에서는 리스트 타입이 배열기능을 담당하고 있다. 배열은 왜 필요할까? 같은 타입의 데이터를 효율적으로 관리하고, 순차적으로 저장하기 위해 필요하다! 배열은 빠른 접근이 가능하나, 추가 삭제가 쉽지 않다는 단점이 있다..! 배열에 대해서 좀 알아보았으니 본격적으로 파이썬을 통해서 배열을 알아보자 위에서 언급했다시피 배열을 담당하는 리스트이며, 리스트를 가지고 배열을 구현해보자 # 1차원 배열 data1 = [1, 2, 3] # 2차원 배열 data2 = [[1, 2], [3, 4], [5, 6]] 매우 쉽다. 1차원 배열과 2차원 배열을 구현했다. 잠깐, 각 차원 리스..
자료구조란 무엇일까?! 자료구조란 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조!를 의미한다. 데이터마다 특성이 다 다르므로 체계적으로 구조화를 해야하며, 어떤 구조를 사용하느냐에따라 당연히 코드 효율이 달라진다! 아주 간단한 예로, 우리는 학교를 다닐때 학년과 반과 번호를 부여받아왔다. 학생을 데이터라고 가정 했을 때, 학년-반-번호라는 구조를 통해 관리되었으며 이 또한 구조화했다고 볼 수 있다! 그렇다면 자료구조의 종류에는 어떤 것들이 있을까? 대표적인 자료구조로는 스택, 큐, 배열, 링크드 리스트, 해쉬테이블, 힙 등이 있다. 알고리즘은 또 뭘까? 알고리즘은 어떤 문제를 풀기 위한 절차 혹은 방법이다. 어떤 문제에 대해 입력을 넣었을 때, 원하는 출력을 얻을 수 있도록 프로그래밍하는 것이..