Section 4의 첫 시간이다.
스케줄을 보니 이번주는 자료구조에 대해 배운다 한다.
자료구조 종류와, 특징을 알아가는게 목표다.
오늘의 키워드는 자료구조, Stack, Queue 가 되겠다!
Stack과 Queue 자료구조를 이용해 직접 코딩을 해보았다.
Stack 구현하기와 연습문제 , Queue 구현하기와 연습문제를 풀었다.
소올직히 아직까지 와닿진 않는다!
이거 그냥 for문이나 배열로 막막 쓰면 되는데 stack이나 Queue를 계속 의식하며 하라는건감? 싶기도 하고..
조금더 코드를 효율적으로 접근할 수 있다는데.. 얼만큼 차이의 이득이 있는지도 잘 모르겠다!
확실한건 자료구조를 사용하지 않은 채 , 코드를 남발하면 타임아웃이 난다는 것 ...😭
괜히 자료구조라니까 더 어렵게 느껴지기도 했다.😖
좀 더 많은 자료구조를 배워 봐야 그 의미를 알 수 있을것 같다.
< 자료구조 >
1. 개념
: 데이터 묶음을 효율적으로 저장하고 사용하는 방법을 정의한 것.
자료 구조 종류에 따라 데이터를 다루는 방법이 다르고, 상황에 따라 적절한 자료구조를 사용할 수 있다.
자료구조를 종류에 따라 시각화 해 놓은 사이트.
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
Data Structure Visualization
www.cs.usfca.edu
< Stack >
1. 구조
다음과 같이 데이터를 순서대로 쌓은 구조이다.
아래 gif 는 위 링크 Data Structure Visualization 을 사용했다.
2. 특징
-> 입출력 방향이 1개여서 접근에 제한이 있을 수 있다.
-> 데이터를 넣는 것을 PUSH, 꺼내는 것을 POP 메소드를 사용한다.
-> 데이터는 하나씩만 넣고 뺄 수 있다.
-> LIFO ( Last In First Out ) 후입 선출 구조이다.
( ex 사용예시 . 브라우저의 뒤로가기, 앞으로 가기 .. )
< Queue >
1. 구조
다음과 같이 단방향 터널 구조이다.
2. 특징
-> 입출력 방향이 2개이다.
-> 데이터를 넣는 것은 enqueue 메소드를 , 꺼내는 것은 dequeue 메소드를 사용한다.
-> 데이터는 하나씩만 넣고 뺄 수 있다.
-> FIFO ( First In First Out ) : 먼저 들어간 데이터가 먼저 나오는 선입선출 구조이다.
( ex 사용예시 . 프린트의 임시기억 장치 )