개발일기

[Java Algorithm] 스택 (Stack) / 큐 (Queue) 본문

프로그래밍 이론/Java

[Java Algorithm] 스택 (Stack) / 큐 (Queue)

한민기 2022. 10. 5. 17:42
반응형

💡 스택이란?

스택(stack)은 하나씩 쌓아 올린다를 의미한다.

따라서 스택 자료구조는 책을 한곳에 쌓아 올린 형태와 같은 자료구조를 의미한다.

 


💡 스택의 특징

1. 스택은 정해진 한 곳으로만 데이터를 쌓을 수 있다.

2. top으로 정한 곳을 통해서만 접근이 가능하다.

3. 새로 들어온 데이터는 top 위에 쌓이게 되며 새로 들어온 데이터가 top 으로 갱신된다.

4. 스택은 top을 통해 접근이 가능하기 때문에 push는 top 위에 데이터를 추가하는 것을 의미하며 pop은 top의 데이터를 빼는 것을 의미한다.

 

📌 결론 :

스택은 후입 선출 구조 LIFO(Last In First Out) 형태로 가장 마지막으로 삽입된 데이터가 가장 먼저 나가게 된다.

 

✏️ stack.push(B)


✏️ stack


✏️ stack.pop( )

 

 


📍 스택 사용 문제 

스택을 사용하는 문제 중 유명한 문제는 수식의 괄호 검사 문제이다.

 

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


 

💡 큐란?

큐의 사전적 의미는 줄을 서다라는 의미를 가지고 있다.

따라서 줄을 서는 것 먼저 온 사람이 먼저 나간다와 같이 선입선출 방식의 자료구조를 의미한다.


💡 큐의 특징

1. 정해진 곳으로 들어오고 나가는 스택과 달리 들어오는 곳 따로 나가는 곳 따로 있다.

2. 접근 방법은 가장 먼저 들어온 앞의 데이터와 가장 마지막에 들어온 데이터로 접근이 가능하다.

3. 큐의 가장 첫 원소를 front, 가장 끝 원소를 rear라고 한다.

4. 가장 먼저 들어온 front가 가장 먼저 나가게 된다.

 

📌 결론 : 

큐는 선입선출 FIFO(First In First Out) 형태로 가장 먼저 들어온 데이터가 가장 먼저 나가게 된다.

 

✏️ queue.offer(B)


✏️ queue


✏️ queue.poll ( )

 


📍 큐 사용 문제

https://school.programmers.co.kr/learn/courses/30/lessons/42583

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


🔥 스택 / 큐 관련 함수 사용 방법

이전에 스택과 큐에서 자주 사용하는 함수들을 정리해둔 글이다. 

 

https://hanmingi.tistory.com/217?category=935869 

 

[JAVA] 코딩테스트 문법 정리 (4) - 자료구조(Stack, Queue, PriorityQueue)

코딩테스트에 자주 나오는 자료구조를 정리한다. 정리할 자료구조 : Stack, Queue, PriorityQueue # Stack Stack의 사전적 정의는 '쌓다' '더미' 로 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료구조이다

hanmingi.tistory.com

 

반응형
Comments