본문 바로가기

카테고리 없음

SEB_FE_ 블로깅 챌린지 _ 59일차 ( 자료구조 - Stack, Queue )

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 을 사용했다.

Stack 구조

 

 

2. 특징

 

-> 입출력 방향이 1개여서 접근에 제한이 있을 수 있다.

 

-> 데이터를 넣는 것을 PUSH, 꺼내는 것을 POP 메소드를 사용한다.

 

-> 데이터는 하나씩만 넣고 뺄 수 있다.

 

-> LIFO ( Last In First Out )  후입 선출 구조이다.

 

( ex 사용예시 . 브라우저의 뒤로가기, 앞으로 가기 .. )

 

 

< Queue >

 

1. 구조

 

다음과 같이 단방향 터널 구조이다.

queue 구조

2. 특징

 

-> 입출력 방향이 2개이다.

 

-> 데이터를 넣는 것은 enqueue 메소드를 , 꺼내는 것은 dequeue 메소드를 사용한다.

 

-> 데이터는 하나씩만 넣고 뺄 수 있다.

 

-> FIFO ( First In First Out ) : 먼저 들어간 데이터가 먼저 나오는 선입선출 구조이다.

 

( ex 사용예시 . 프린트의 임시기억 장치 )