본문 바로가기

분류 전체보기150

스택(Stack)이란 스택(Stack) 스택은 LIFO(Last In First Out) 형식을 기반으로 한 자료구조입니다. LIFO 란 나중에 들어온 데이터가 먼저 나가게되는 방식입니다. 스택에서 자료를 넣는 것을 push 자료를 꺼내는 것을 pop 이라고 부릅니다. 위의 사진처럼 저장 공간이 세로로 되어있고 거기에 데이터를 차곡 차곡 쌓아간다고 생각하시면 이해하기 좀 더 편할 것 같습니다. 스택의 사용 뒤로가기 버튼 우리가 사용하는 브라우저의 뒤로가기 버튼이 바로 스택을 사용한 것 입니다. 2020. 2. 11.
큐(Queue) 란 큐(Queue) 큐 (Queue)란 FIFO(First In First Out) 방식을 기반으로 한 자료구조 입니다. FIFO란 먼저 들어온 Data가 먼저 나가게 되는 방식입니다. 일상생활에서도 종종 큐를 접할 수 있습니다. 대표적인 예를 들어보겠습니다. 대기줄 큐에 대한 예를 설명할 때 가장 많이 나오는게 바로 대기줄 입니다. 우리가 음식을 먹으려 줄을 섰을 때 먼저 온사람이 먼저 주문을 하는 것처럼 큐도 먼저 들어온 Data가 먼저 나가게 됩니다. 큐가 사용되는 곳 큐는 프린터의 출력, 프로세스 관리 등 입력된 시간 순서대로 처리해야 할 필요가 있는 상황에 이용됩니다. 큐의 주요 동작 기능 Queue의 마지막에 데이터 삽입 보통 insert, enqueue, offer, push 라는 이름의 함수로.. 2020. 2. 10.
리스트(List) 리스트란 리스트란 순서가 있는 엘리먼드의 모임입니다. 배열이 가지고 있는 장점 중 하나인 인덱스를 버리는 대신 데이터의 삽입, 삭제에 용이한 자료구조입니다. 노드 (Node) 리스트에서 저장되는 데이터의 단위입니다. 보통 노드에는 입력된 값 (Data)과 함께 다음 노드에 대한 주소값이 같이 저장됩니다. 리스트의 장 / 단점 1. 장점 데이터 추가 삭제에 용이합니다. 각 노드에 다음 노드에 대한 주소의 값이 저장되어 있기 때문에 데이터 추가나 삭제를 할때 이 주소값을 바꿔줌으로써 데이터 추가나 삭제가 편리합니다. 생성할 때 따로 정해진 메모리를 할당해주지 않아도 됩니다. 배열처럼 처음 생성할 때 크기를 지정해주지 않기 때문에 저장되는 데이터 양에 손쉽게 대처할 수 있습니다. 2. 단점 데이터에 접근할 때.. 2020. 2. 7.
1일 1커밋 한달 회고 그동안 마냥 실력을 키우자 키우자 했었지만 마땅한 지표도 없이 시간만 흘러갔었다... 그러던 어느날 우연히 유튜브 광고에서 배달의 민족에 계시는 선배 개발자님의 영상을 봤었다 https://www.youtube.com/watch?v=V9AGvwPmnZU 상당히 충격을 받음과 동시에 오만가지 감정이 격차하는... 참.... 지금까지도 이 감정이 이어오는 걸 느낀다 희망, 절망, 자책, 걱정, 두려움, 설렘 등등 감정이 한꺼번에 밀려온다는게 이런건가 싶을 정도였다. 주변에 아는 개발자가 별로 없다보니 나는 정말 우물안 개구리였구나 라는 생각이 들었다. 영상을 보고 나도 한번 공부를 증명해보자는 생각이 강하게 들어 1일 1커밋을 시작하게 되었다. 언제까지 이어질지 모르겠으나 일단 한달을 채웠다. 반성하자면 의.. 2020. 2. 4.
배열이란 배열(Array)이란 배열이란 자료구조의 가장 기초적인 형태입니다. 배열은 번호(Index)와 번호에 대응하는 데이터들로 이루어져 있는데 일반적으로 배열에는 같은 종류의 데이터들이 순차적으로 저장되어 있습니다. 일반적으로 배열은 고정된 길이를 설정해주어야 합니다. 배열의 특징 1. 크기가 정해져 있다. 배열을 선언하게 되면 사용 가능한 메모리 영역 중에서 설정한 배열의 크기 만큼의 연속된 메모리를 할당 받습니다. 2. Index값을 갖는다. 배열은 Index라는 값을 가집니다. 위의 사진에서 Index가 0인 값은 1, Index가 3인 값은 4가 됩니다. 일반적으로 Index는 0부터 시작합니다. 배열의 장 / 단점 장점 Index로 값에 접근하기때문에 해당 값의 Index만 알고있으면 값으로의 접근이.. 2020. 1. 20.
자료구조란 자료구조란 자료구조란 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미합니다. 여기서 자료란 현실 세계에서 수집하 사실이나 개념의 값을 의미합니다. 자료구조를 사용하는 이유는 데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다. 자료구조의 특징 자료구조에는 몇가지 특징이 있습니다. 효율성 추상화 재사용성 1. 효율성 상황에 맞는 적절한 자료구조를 사용하게 되면 데이터 처리의 효율을 높일 수 있습니다. 간단한 예를들어 자료구조에는 배열과 리스트라는 데이터 처리 기법이 있습니다. 다음에 설명하겠지만 여기서는 배열은 탐색에 용이하고 리스트는 데이터 추가, 삭제에 용이하다는 점만 말하겠습니다. 데이터를 검색해야하는 일이 많은 작업에서는 리스트 보다는 탐색에 용이한 배.. 2020. 1. 19.