1. Stack
- 우리가 주로 사용하는 'stack'을 쌓다 라는 말을 생각해 보면 쉽게 알 수 있다.
우리 팀 나서스 20분에 스택 700개, 그는 신이야...!
- 스택은 자료를 받아와 마지막에 받아온(가장 최근에 들어온) 자료부터 빠져나간다.
- 우리는 이미 스택을 잘 사용하고 있다. Array 같은 거 말이다. 일상생활에서는 페이지 앞, 뒤로 가기 기능이 있다.
- 주로 push, pop, top(가장 상단의 데이터를 보여줌), size(얼마나 데이터가 쌓였는지 보여줌)를 사용한다.
2. Queue
- 우리가 주로 사용하는 'Queue'를 잡다 라는 말을 생각해 보면 쉽게 알 수 있다.
ex) 큐 돌려놓고 화장실 가라 빨리 시작하게
- 큐는 데이터를 순서대로 쌓아 들어온 순서대로 빠져나온다.
- 일상생활의 줄 서기, 프린터의 작동원리 등으로 볼 수 있다.
- 주로 push, shift, size를 사용한다.
3. 자료구조를 문제에 적용하는 나의 태도
- 대부분 알고리즘 문제에 주로 사용된다.
- 스택과 큐의 특징을 이용하여 문제를 푸는 것이지, 꼭 직접적으로 사용할 필요는 없다.
- 주로 스택과 큐 둘 다 배열을 잘 사용하며, 배열에 유리한 메서드들을 이용해 데이터를 가공한 후 스택과 큐의 특징처럼 저장소를 사용해 문제를 해결하는 형식이 많다.
문제를 무조건적으로 많이 풀어 보아야 한다. 이미 스택과 큐의 특징은 우리 모두 잘 알고 있을 것이다.
하지만 어떻게 문제에 접근해야 하는가? 에 대한 부분이 매우 시간이 오래 걸린다.
가장 빠른 왕도는 다양한 문제를 접해보고 생각의 범위를 넓이는 것이라고 한다.
요즘 꽤나 공부할 양이 말도 안 되게 늘어서 고통받고 있지만 질질 끌려다니면서 어떻게든 해내고 있는 것 같다.
어떻게든 되겠지, 죽기밖에 더 하겠어
'Coding > Today I Learned' 카테고리의 다른 글
2021.07.26(Mon.) <동기 비동기의 간단한 설명> (0) | 2021.07.27 |
---|---|
2021.07.24(Sat.) <Graph 형태의 자료구조> (0) | 2021.07.25 |
2021.07.21(Wed.) <재귀함수의 고찰> (0) | 2021.07.21 |
2021.07.20(Tue.) <재귀함수 탬플릿> (0) | 2021.07.20 |
2021.07.19(Mon.) <객체지향 언어인 Javascript의 class와 prototype> (0) | 2021.07.19 |