유후 오늘은 처음 배워보는 Data Structure에 대해 배웠다.
지금까지는 배워보지 못한 부분이라서 걱정이 컸다. (코플릿 문제풀때 현실이 되긴했다.)
자료구조란 여러 데이터들의 묶음을 어떻게 저장할 것이고, 사용할 것인지 정의한 것
그렇다면 자료(data)란?
문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 것들을 자료(data)라고 한다.
이러한 자료들은 자료들의 특징에 잘 맞게 정리하고 활용되어여한다!!
위의 사진처럼 각 자료구조는 특정한 상황의 문제해결에 특화되어 있다.
(다양한 자료구조를 알아두면 문제해결에 유리하다고함 🤩)
Stack
은 쌓다라는 의미! (접시를 쌓아 놓은 형태)
자료를 쌓는 자료구조!!
FILO (First In Last Out)
-> 가장 먼저 오는것이 가장 나중에 나간다.
LIFO (Last In First Out)
-> 가장 나중에 들어온 것이 가장 먼저 나간다. (이게 더 직관적인듯 🤓)
Ctrl + Z
Ctrl+ Shift + Z
누구나 문서를 작성 해보았다면 알 수 있는 단축키이다.
가장 마지막에 했던 실행방식을 되돌리는 LIFO를 보여주는 사례라고 생각한다.
Queue
는 줄을 서서 기다리다, 대기 행렬
FIFO (First In Last Out)
-> 가장 먼저 오는것이 가장 먼저 나간다.
LILO (Last In First Out)
-> 가장 나중에 들어온 것이 가장 나중에 나간다.
선입선출의 구조!
내가 인쇄 요청을 한 순서대로 문서의 결과물들이 출력되어 나온다!
수업을 듣다 보니 컴퓨터와 프린트기의 사이에서 자료를 주고 받을 때 장치들 간의 속도차이, 시간차이를 극복하기 위해서 임시기억창치로 Queue가 사용 된다고 한다.
이 전반의 과정을 버퍼(buffer)이라고 한다.
Stack과 Queue를 배우면서 이미 많이 접해왔던 구조의 형태라는것을 알게되었다.
사실은 아직 처음 배운것이라서 이것을 어떻게 적용시켜야할지 걱징이 크다.
(특히 코플릿 문제를 풀면서 ㅠ 개념에대한 이해만 했지 문제에 적용시키는 것은 많은 연습이 필요하다고 느꼈다. 😩😩😩)