C# Stack 마스터하기: Push, Pop과 실전 예제
C#에서 Stack이란?
스택은 후입선출(LIFO, Last-In-First-Out) 원칙을 따르는 컬렉션입니다. 책 더미를 생각하면 됩니다: 맨 위 책만 꺼낼 수 있습니다. .NET Stack 클래스도 같은 논리 적용 – Push로 맨 위에 요소 추가, Pop으로 맨 위에서 요소 제거.
Stack 선언
new 키워드로 스택을 인스턴스화하고 변수에 할당합니다.
Stack st = new Stack();
요소 추가 – Push
Push 메서드는 새 요소를 스택 맨 위에 놓습니다.
st.Push(1);
요소 제거 – Pop
Pop 메서드는 최상위 요소를 제거하고 반환합니다.
var top = st.Pop();
기타 주요 연산
실전 예제 1: Push, Count, Contains 사용
아래 콘솔 애플리케이션은 스택 생성, 요소 삽입, 열거, 기본 쿼리를 시연합니다.

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
// 1. 새 스택 생성
Stack st = new Stack();
// 2. 세 정수 푸시
st.Push(1);
st.Push(2);
st.Push(3);
// 3. 스택 열거 – LIFO 순서 유의
foreach (Object obj in st) {
Console.WriteLine(obj);
}
// 4. 전체 개수 출력
Console.WriteLine($"\nNumber of elements: {st.Count}");
// 5. 값 3 포함 여부 확인
Console.WriteLine($"Does stack contain 3? {st.Contains(3)}");
Console.ReadKey();
}
}
}
설명
Stack 변수 st 선언
- 세 정수 푸시; 마지막에 푸시된 3이 최상위 요소
foreach로 스택을 위에서 아래로 열거하여 3, 2, 1 표시
Count가 3 반환, 세 항목 확인
Contains(3)이 true 반환, 3 존재 증명
프로그램 실행 결과:

실전 예제 2: Pop으로 최상위 요소 제거
Pop 메서드 동작을 간결하게 보여줍니다.

using System;
using System.Collections;
namespace DemoApplication {
class Program {
static void Main(string[] args) {
Stack st = new Stack();
st.Push(1);
st.Push(2);
st.Push(3);
// 최상위 요소(3) 제거
st.Pop();
foreach (Object obj in st) {
Console.WriteLine(obj);
}
Console.ReadKey();
}
}
}
설명
- 1, 2, 3 푸시 후 스택 최상위는 3
Pop() 호출로 3 제거, 2와 1 남음
- 열거 시 2 다음 1 출력
프로그램 출력:

핵심 요약
Stack은 LIFO 원칙으로 동작
Push로 추가, Pop으로 최상위 요소 제거
- 도우미: 크기 확인용
Count, 멤버십 확인용 Contains