일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 시간복잡도
- 프림알고리즘
- AIFFEL
- 내돈내산
- FastCampus
- 해쉬테이블
- 연결리스트
- 환급챌린지
- package-install
- nqueen
- 코딩테스트인강
- 백준알고리즘2920번
- BFS알고리즘
- 크루스칼알고리즘
- 인강
- 알고리즘
- 코딩테스트
- 자료구조
- 파이썬
- Korean-NLP
- DFS알고리즘
- 최단거리알고리즘
- 시나공정보처리기사
- 1주차완료
- Ai
- 퀵정렬
- 패스트캠퍼스
- 코딩테스트대비
- 트리구조
- 작심삼개월
- Today
- Total
DevLog
[패스트캠퍼스 :: 코딩테스트 인강] 1주차 ② 배열, 큐, 스택 본문
알고리즘/기술면접 완전 정복 올인원 패키지 Online
06 배열
07 파이썬과 배열
08 큐 (Queue) - 1
09 큐 (Queue) - 2
10 스택 (Stack)
비교적 익숙한 개념이라 그런지 어려움없이 듣게 되었다.
하지만 그 중에서도 헷갈리던 개념 혹은 '어? 내가 생각하던 개념이 아니네?' 라는 생각이 드는 개념들이 있었고,
그 부분을 완벽히 잡을 수 있었다.
물론 어느정도 파이썬 기본 문법을 안다는 전제 하에 진행되는 강의이기 때문에 배열에서 중요하게 작용된다고 생각하는 '인덱싱 기법'에 대해서는 따로 설명을 하시진 않았다.
환급 챌린지 미션 관련 페이지에서는 각 개념의 깊은 내용까지 모두 기록하게 되면 하나의 글이 너무 길어질 것을 대비하여 여기서는 간단하게 요약 겸 내가 다시 리마인드할 수 있는 내용 중심으로 기록을 하고, 각 개념에 대하여 개념 정리 및 중요한 점은 다시 기록하게 될 것 같다.
오늘도 5개의 강의를 수강했지만 하나의 문맥이라고 해도 과언이 아닐 정도로 배열을 중심으로 그 배열에 데이터를 넣고 빼는 과정의 차이가 있는 큐와 스택에 대하여 간단하게 기록해보려고 한다.
01. 배열
[Keywords]
배열, 인덱스, 1차 배열, 2차 배열, 배열의 요소를 위해 for문 활용하여 알고리즘 구성
- Array
- 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
- 파이썬에서는 리스트 타입이 배열 기능을 제공함 :: 이 부분에서 깨달음을 얻었다!
** 리스트가 배열이고, 배열이 리스트인 줄 알았는데, 주의해야 할 점으로 '배열'은 자료구조이고, '리스트'는 데이터 타입을 의미하는 것이므로 동일한 개념이라고 알면 절대 안되고, 배열이라는 구조는 파이썬에서 리스트 타입을 활용하여 표현할 수 있다는 걸 명심!
- 유사한 데이터를 연결된 공간에 넣을 수 있는 것을 의미
- 강의에서 예시를 들어주길, 엑셀을 활용하여 이해를 도와주셨는데 엑셀의 한 칸 한 칸이 데이터 하나가 저장되는 구조라고 보았을 때, 쭉 한 행으로 연속된 공간에 데이터를 넣을 수 있다는 것
- 배열의 가장 큰 특징인 '인덱스' 번호를 활용하여 데이터에 빠르게 접근 가능
- (파이썬 언어는 아닌 것으로 알지만) 미리 최대 길이를 지정해야 함
02. 큐
* 큐에 대한 공부를 할 때면 항상 비슷한 비유를 듣게 된다.
- 학창시절 급식을 먹으러 줄을 설 때, 줄을 선 순서대로 배식을 받게 되는 구조
- 긴 통로에서 들어간 순서대로 나오는 구조
- FIFO (First In First Out)
- Enqueue (Queue 구조에 데이터를 넣는 기능 :: 라이브러리를 사용하여 put()함수를 사용할 수도 있지만 파이썬으로 직접 구현 가능 -> list.append())
- Dequeue (Queue 구조에 데이터를 꺼내는 기능 :: 라이브러리를 사용하여 get() 함수를 사용할 수도 있지만 파이썬으로 직접 구현 가능 -> del data[0] (리스트 형태에서 가장 먼저 들어간 데이터는 인덱스 0일 것이기 때문에 적용 가능)
- Queue의 다양한 구조 :: import queue 를 하여 queue. -> TAB을 눌러 자동완성되는 클래스 중에 무엇이 존재하는지 확인 가능
* Queue() :: FIFO
* LifoQueue() :: LIFO - Last In First Out
* PriorityQueue() :: 우선순위를 부여하여 삽입되는 순서와는 상관없이 추출해내는 것
03. 스택
* 스택에 대한 공부를 할 때면 항상 비슷한 비유를 듣게 된다.
- 학창시절 급식에서 급식판이 순서대로 위로 쌓여있는데, 거기서 순서대로 뽑아서 사용
- 책이 쌓여있는데 책을 아래 부분이 아닌 위에서 부터 뽑아서 사용
- LIFO : Last In First Out
- push() 함수를 활용하여 스택 구조에 데이터 넣기
- pop() 함수를 활용하여 스택 구조에 데이터 꺼내기
사실 나의 자료구조의 완벽한 개념은 딱 배열, 큐, 스택까지라고 할 수도 있다.
그래서 앞으로 챌린지가 더 무섭다.
하지만 재밌기도 하다.
[패스트캠퍼스 100% 환급 챌린지 미션 중입니다.]
'IT 개발 > Algorithm 알고리즘' 카테고리의 다른 글
[패스트캠퍼스 :: 코딩테스트 인강] 3주차 ① 해쉬 테이블 (0) | 2021.03.03 |
---|---|
[패스트캠퍼스 :: 코딩테스트 인강] 2주차 ② 연결리스트/더블 링크드리스트 (0) | 2021.02.28 |
[패스트캠퍼스 :: 코딩테스트 인강] 2주차 ① 연결리스트/링크드리스트 (0) | 2021.02.25 |
[패스트캠퍼스 :: 코딩테스트 인강] 1주차 ① OT 겸 환경 설정 (0) | 2021.02.21 |
[패스트캠퍼스 :: 내돈내산] 100% 환급 챌린지 미션 시작! (0) | 2021.02.18 |