DevLog

[패스트캠퍼스 :: 코딩테스트 인강] 1주차 ② 배열, 큐, 스택 본문

IT 개발/Algorithm 알고리즘

[패스트캠퍼스 :: 코딩테스트 인강] 1주차 ② 배열, 큐, 스택

Euniverse 2021. 2. 21. 20:19

알고리즘/기술면접 완전 정복 올인원 패키지 Online

 

06 배열

07 파이썬과 배열

08 큐 (Queue) - 1

09 큐 (Queue) - 2

10 스택 (Stack)


 

2021.02.21 일요일에 수강한 강의

 

 

비교적 익숙한 개념이라 그런지 어려움없이 듣게 되었다.

하지만 그 중에서도 헷갈리던 개념 혹은 '어? 내가 생각하던 개념이 아니네?' 라는 생각이 드는 개념들이 있었고,

그 부분을 완벽히 잡을 수 있었다. 

 

물론 어느정도 파이썬 기본 문법을 안다는 전제 하에 진행되는 강의이기 때문에 배열에서 중요하게 작용된다고 생각하는 '인덱싱 기법'에 대해서는 따로 설명을 하시진 않았다. 

 

환급 챌린지 미션 관련 페이지에서는 각 개념의 깊은 내용까지 모두 기록하게 되면 하나의 글이 너무 길어질 것을 대비하여 여기서는 간단하게 요약 겸 내가 다시 리마인드할 수 있는 내용 중심으로 기록을 하고, 각 개념에 대하여 개념 정리 및 중요한 점은 다시 기록하게 될 것 같다. 

 

오늘도 5개의 강의를 수강했지만 하나의 문맥이라고 해도 과언이 아닐 정도로 배열을 중심으로 그 배열에 데이터를 넣고 빼는 과정의 차이가 있는 큐와 스택에 대하여 간단하게 기록해보려고 한다.

 

 


01. 배열

 

[Keywords]

배열, 인덱스, 1차 배열, 2차 배열, 배열의 요소를 위해 for문 활용하여 알고리즘 구성

 

- Array

- 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조

- 파이썬에서는 리스트 타입이 배열 기능을 제공함 :: 이 부분에서 깨달음을 얻었다!

** 리스트가 배열이고, 배열이 리스트인 줄 알았는데, 주의해야 할 점으로 '배열'은 자료구조이고, '리스트'는 데이터 타입을 의미하는 것이므로 동일한 개념이라고 알면 절대 안되고, 배열이라는 구조는 파이썬에서 리스트 타입을 활용하여 표현할 수 있다는 걸 명심!

 

- 유사한 데이터를 연결된 공간에 넣을 수 있는 것을 의미

- 강의에서 예시를 들어주길, 엑셀을 활용하여 이해를 도와주셨는데 엑셀의 한 칸 한 칸이 데이터 하나가 저장되는 구조라고 보았을 때, 쭉 한 행으로 연속된 공간에 데이터를 넣을 수 있다는 것

- 배열의 가장 큰 특징인 '인덱스' 번호를 활용하여 데이터에 빠르게 접근 가능

- (파이썬 언어는 아닌 것으로 알지만) 미리 최대 길이를 지정해야 함

 

02. 큐

 

 

Queue의 구조 및 주요 개념

 

* 큐에 대한 공부를 할 때면 항상 비슷한 비유를 듣게 된다.

- 학창시절 급식을 먹으러 줄을 설 때, 줄을 선 순서대로 배식을 받게 되는 구조

- 긴 통로에서 들어간 순서대로 나오는 구조

 

- 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. 스택 

 

 

Stack 구조

 

* 스택에 대한 공부를 할 때면 항상 비슷한 비유를 듣게 된다.

- 학창시절 급식에서 급식판이 순서대로 위로 쌓여있는데, 거기서 순서대로 뽑아서 사용

- 책이 쌓여있는데 책을 아래 부분이 아닌 위에서 부터 뽑아서 사용

 

- LIFO : Last In First Out

- push() 함수를 활용하여 스택 구조에 데이터 넣기

- pop() 함수를 활용하여 스택 구조에 데이터 꺼내기

 

 


사실 나의 자료구조의 완벽한 개념은 딱 배열, 큐, 스택까지라고 할 수도 있다.

그래서 앞으로 챌린지가 더 무섭다.

하지만 재밌기도 하다.

 

 

[패스트캠퍼스 100% 환급 챌린지 미션 중입니다.]

알고리즘 / 기술면접 완전 정복 올인원 패키지 Online. | 패스트캠퍼스

오직 개발자 취업을 위해 만든 알고리즘/기술면접 완벽 대비 강의

www.fastcampus.co.kr