프로그래밍/JAVA

"스택" 구조

Cognivox 2025. 4. 11. 13:50
반응형

✅ 스택(Stack)이란?

“나중에 넣은 게 먼저 나오는 구조”
즉, LIFO 구조
👉 Last In, First Out (마지막에 들어간 게 먼저 나옴)


🎂 아주 쉬운 비유

접시를 쌓는다고 생각해봐!

  • 첫 번째 접시 → 아래
  • 두 번째 접시 → 위에
  • 세 번째 접시 → 맨 위에

👉 꺼낼 땐?
→ 맨 위에 있는 세 번째 접시부터 꺼내야 해!


🧱 구조 흐름

동작설명
push() 데이터를 스택 위에 넣는 것
pop() 스택 위에서 꺼내는 것
peek() 꺼내지 않고, 맨 위 값을 확인만 하는 것

🎯 자바에서 스택은 언제 쓰일까?

상황예시
메서드 호출 메서드를 부르면 스택에 쌓였다가, 끝나면 빠짐
괄호 검사 열고 닫는 괄호가 짝 맞는지 검사할 때
되돌리기 뒤로가기 기능 (이전 상태를 스택에 저장)
재귀 호출 함수가 자기 자신을 반복 호출할 때도 스택 사용

🧠 한 줄 요약

스택은 "나중에 넣은 게 먼저 나오는 상자" 같은 구조임.
자바는 메서드 실행도 이 스택 구조를 사용해서 관리함!

 

✅ LIFO란?

Last In, First Out
👉 “마지막에 들어간 게 가장 먼저 나오는 구조”


🧁 비유로 설명하면?

📦 예: 박스를 위로 쌓는 상황

  1. 첫 번째 박스 → 아래
  2. 두 번째 박스 → 위
  3. 세 번째 박스 → 맨 위

👉 꺼낼 땐?
→ 맨 위 세 번째 박스부터 꺼내야 해!

즉, **"나중에 넣은 것부터 먼저 꺼내는 구조"**가 바로 LIFO야.


🧠 어디서 쓰일까?

사용 예시설명
메서드 호출 스택 함수가 호출되면 스택에 쌓였다가, 끝나면 차례대로 제거
웹 브라우저 뒤로 가기 최근에 본 페이지부터 거꾸로 돌아감
괄호 검사 여는 괄호가 들어간 순서의 반대로 닫혀야 함

🧩 비교: LIFO vs FIFO

구조설명예시
LIFO Last In, First Out 스택, 접시 더미 🍽️
FIFO First In, First Out 큐, 줄 서기 🧍‍♂️🧍‍♀️

🎯 한 줄 요약

LIFO = 나중에 들어간 게 먼저 나오는 구조
(= 스택 구조의 원리)

 

#스택 #Stack #자료구조 #LIFO #자바스택 #코딩기초 #컴퓨터구조 #자바자료구조 #push #pop #peek #메서드스택 #스택구조 #자바공부 #재귀호출 #뒤로가기기능 #괄호검사 #스택예제 #자바기초 #프로그래밍입문

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

java 에서 사용하는 디자인 패턴  (0) 2025.04.11
코드쓸때 언제 대문자를 적지 ??  (0) 2025.04.11
컨스트럭터(Constructor)란?  (0) 2025.04.11
Garbage Collector 란?  (0) 2025.04.11
java "생성자"  (0) 2025.04.11