Algorithm
-
[Algorithm] 자료구조(Stack)Algorithm 2023. 3. 8. 10:34
꼭 알아둬야 할 자료 구조 : 스택(Stack) 데이터를 제한적으로 접근할 수 있는 구조 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 가장 나중에 쌓는 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 큐 : FIFO 정책 스택 : LIFO 정책 1. 스택 구조 스택은 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따름 LIFO : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책 FILO : 처음에 넣은 데이터를 가장 마지막에 추출하는 데이터 관리 정책 대표적인 스택의 활용 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 주요기능 push() : 데이터를 스택에 넣기 pop() : 데이터를 스택에서 꺼내기 Visualgo 사이트..
-
[Algorithm] 자료구조(Queue)Algorithm 2023. 3. 1. 23:27
대표적인 데이터 구조 : 큐(Queue) 1. 큐 구조 줄을 서는 행위와 유사 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조 음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에서 입장하는 것과 동일 FIFO(First-In, First-Out) 또는 LILO(Last-Out) 방식으로 스택과 꺼내는 순서가 반대 2. 알아둘 용어 Enqueue : 큐에 데이터를 넣는 기능 Dequeue : 큐에서 데이터를 꺼내는 기능 Visualgo 사이트에서 시연해보며 이해하기 (enqueue/dequeue 클릭해보며): https://visualgo.net/en/list 3. 파이썬 Queue 라이브러리 활용해서 큐 자료 구조 사용하기 queue 라이브러리에는 다양한 큐 구조로 Queue(), LifoQ..
-
[Algorithm] 자료구조(배열)Algorithm 2023. 2. 15. 16:45
꼭 알아둬야 할 자료 구조 : 배열(Array) 데이터를 나열하고, 각 데이터를 index에 대응하도록 구성한 데이터 구조 파이썬에서는 리스트 타입이 배열 기능을 제공함 1. 배열은 왜 필요할까? 같은 종류의 데이터를 효율적으로 관리하기 위해 사용 같은 종류의 데이터를 순차적으로 저장 장점 : 빠른 접근 가능 미리 최대길이를 지정해야 함. 단점 : 데이터 추가/삭제의 어려움 미리 최대 길이를 지정해야 함. 엑셀로 이해해보기 C 언어 예 : 영어 단어 저장 #include int main(int argc, char * argv[]) { char country[3] = "US"; printf ("%c%c\n", country[0], country[1]); printf ("%s\n", country); ret..
-
[Algorithm] 자료구조와 알고리즘의 이해Algorithm 2023. 2. 15. 16:22
자료구조와 알고리즘이란? 자료구조란? 용어: 자료구조, 데이터 구조, data structure 대량의 데이터를 효율적으로 관리할 수 있는 데이터의 구조를 의미 코드상에서 효율적으로 데이터를 처리하기 위해, 데이터 특성에 따라, 체계적으로 데이터를 구조화해 야 함 어떤 데이터 구조를 사용하느냐에 따라, 코드 효율이 달라짐 효율적으로 데이터를 관리하는 예 우편번호: 5자리 우편번호로 국가의 기초구역을 제공 5자리 우편번호에서 앞 3자리는 시, 군, 자치구를 표기, 뒤 2자리는 일련번호로 구성 학생 관리: 학년, 반, 번호를 학생에게 부여해서, 학생부를 관리 XX학년, X반, X번 학생 만약 위 관리 기법이 없다면... 3000명 학생중 특정 학생을 찾기 위해, 전체 학생부를 모두 훑어 야 함 대표적인 자료..